paddlespeech asr脚本demo

概述
paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。
本文介绍利用ps中的asr功能实现批量处理音频文件的demo。
环境
centos 7.9
Python 3.10.3
paddlepaddle 2.5.1
paddlespeech 1.4.1
demo代码
demo的代码如下,使用python3.10版本运行。
# -*- coding: utf-8 -*-
#required python3.10
###paddlespeech asr demo
# paddlespeech asr -y --lang zh --model conformer_wenetspeech --input $audiofile
### demo基本的业务流程
### 给定目录,扫描目录下的音频文件,对音频文件进行asr接口操作,写入对应的结果文件
import os
from paddlespeech.cli.asr.infer import ASRExecutor
import soundfile as sf
srcPath = r'/home/admin/test'
resultFile = r'/home/admin/test/asr-result-file.txt'
##打开结果文件
rfile = open(resultFile, 'a')
##获取asr对象
asr = ASRExecutor()
for filename in os.listdir(srcPath):
if filename.endswith('.wav') or filename.endswith('.mp3'):
audio_file_path = os.path.join(srcPath, filename)
##获取文件参数,计算音频长度
audio_data, sample_rate = sf.read(audio_file_path)
duration = len(audio_data) / sample_rate
##当前的asr接口不能处理超过50秒的音频文件,自动跳过
if duration >= 50:
resultStr = 'srcFile:{}, duration >= 50, skip.'.format(audio_file_path)
print(resultStr)
rfile.write(resultStr + '\n')
else:
result = asr(audio_file=audio_file_path, model='conformer_wenetspeech', lang='zh', force_yes='y')
print('srcFile:{}, asrResult:{}.'.format(audio_file_path, result))
rfile.write('srcFile:{}, asrResult:{}.\n'.format(audio_file_path, result))
rfile.close()
测试
demo的测试结果如下。
$ python3 ps-asr-demo.py
/usr/local/python3/lib/python3.10/site-packages/librosa/core/constantq.py:1059: DeprecationWarning: `np.complex` is a deprecated alias for the builtin `complex`. To silence this warning, use `complex` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.complex128` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
dtype=np.complex,
2023-09-11 16:10:12.299 | INFO | paddlespeech.s2t.modules.embedding:__init__:150 - max len: 5000
/usr/local/python3/lib/python3.10/site-packages/paddle/fluid/dygraph/math_op_patch.py:275: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.int64, but right dtype is paddle.bool, the right dtype will convert to paddle.int64
warnings.warn(
srcFile:/home/admin/test/zh.wav, asrResult:我认为跑步最重要的就是给我带来了身体健康.
srcFile:/home/admin/test/en.wav, asrResult:那摘了的标准.
[2023-09-11 16:10:20,223] [ WARNING] - The sample rate of the input file is not 16000.
The program will resample the wav file to 16000.
If the result does not meet your expectations,
Please input the 16k 16 bit 1 channel wav file.
/usr/local/python3/lib/python3.10/site-packages/paddle/fluid/dygraph/math_op_patch.py:275: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.int64, but right dtype is paddle.bool, the right dtype will convert to paddle.int64
warnings.warn(
srcFile:/home/admin/test/output.wav, asrResult:你好欢迎使用百度非讲深度学习框架.
srcFile:/home/admin/test/test-long-file.mp3, duration >= 50, skip.
...
总结
ps的asr功能中有多个模型可选,目前测试中的“conformer_wenetspeech”识别准确率较高。
识别速度有待提高,音频长度的限制也待解决。
空空如常
求真得真
paddlespeech asr脚本demo的更多相关文章
- paddlespeech asr 使用教程
目录 安装 paddle框架安装 软件源安装 源码安装 快速使用 下载测试使用的音频 非流式命令行接口(CLI) 非流式Server服务 流式Server服务 指令详解 打印paddlespeech_ ...
- Appium之开发计算器自动化测试脚本Demo
1.依赖包 <!-- https://mvnrepository.com/artifact/io.appium/java-client --> <dependency> < ...
- oozie调度hive脚本demo
1. 环境配置 2. 脚本配置 3. 执行job 4. 查看结果 待发布 ..
- 基于python3.7的一个闯越自动签到脚本--demo版
望指正demo的定位,有时候会抽风无法接受我的定位信息 #! /usr/bin/python3 # -*- coding:UTF- -*- # time : // : # file : chuangy ...
- 验证销售部门的数据查看权限-脚本demo
1 # coding:utf-8 2 ''' 3 @file: run_old.py 4 @author: jingsheng hong 5 @ide: PyCharm 6 @createTime: ...
- appium+Python真机运行测试demo的方法
appium+Python真机运行测试demo的方法 一, 打开手机的USB调试模式 二, 连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...
- 将表数据生成Insert脚本
set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-- =============================================-- Author ...
- PowerShell 脚本执行策略
为防止恶意脚本的执行,PowerShell 中设计了一个叫做执行策略(Execution Policy)的东西(我更倾向于把它叫做脚本执行策略).我们可以在不同的应用场景中设置不同的策略来防止恶意脚本 ...
- 使用LR编写windows sockets协议xml报文格式脚本实战
以下是测试脚本Demo: #include "lrs.h" Action() { char * resultCode;//结果代码 char * time; //系统时间 char ...
- 简单易用的安装文件制作工具NSIS的使用demo示例
安装文件制作工具NSIS 使用总结 在给客户开发客户端软件时,为避免技术人员亲自上门安装带来额外的成本损耗,通常我们都会自作一个安装包,以确保我们开发的程序的相关依赖资源.环境在客户端运行前能自动 ...
随机推荐
- Java API 操作Docker浅谈
背景: 使用com.github.docker-java库可以很方便地在Java中操作Docker.下面是一个详细的教程,包括创建镜像.创建容器.启动容器.停止容器和删除容器的步骤以及每一步的说明. ...
- [GDOIpj221B] 数列游戏
第二题 数列游戏 提交文件: sequence.cpp 输入文件: sequence.in 输出文件: sequence.out 时间空间限制: 1 秒, 256 MB 有一个长度为 \(n\) 的序 ...
- [AGC034D] Manhattan Max Matching
Problem Statement Snuke is playing with red and blue balls, placing them on a two-dimensional plane. ...
- Kernel Memory 入门系列: Embedding 简介
Kernel Memory 入门系列: Embedding 简介 在 RAG模式 其实留了一个问题. 我们对于的用户问题的理解和文档的检索并没有提供合适的方法. 当然我们可以通过相对比较传统的方法. ...
- k8s~ingress_service_endpoint_pod四壮士
在Kubernetes中,Service和Endpoints是两个重要的概念,它们之间存在着密切的关系. Service:Service是Kubernetes中用于定义一组Pod的访问方式的抽象.通过 ...
- 在 Walrus 上轻松集成 OpenTofu
OpenTofu 是什么? OpenTofu 是一个开源的基础设施即代码(IaC)框架,被提出作为 Terraform 的替代方案,并由 Linux 基金会管理.OpenTofu 的问世为应对 Has ...
- 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子
大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...
- libGDX游戏开发之打包游戏(十二)
libGDX游戏开发之打包游戏(十二) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goog ...
- CF650A Watchmen
首先解释一下题目里面的两个概念: 曼哈顿距离:即 \(|x_a - x_b| + |y_a - y_b|\) 欧几里得距离:即 \(\sqrt{(x_a - x_b) ^ 2 + (y_a - y_b ...
- 【.NET开发福音】使用Visual Studio将JSON格式数据自动转化为对应的类
前言: 这段时间一直在做一个第三方平台的对接,对接第三方其实无非就是请求调用第三方的相关接口接收返回过来的相关参数.因此在这个过程中就会涉及大量的JSON响应参数或者请求参数转化为对应的实体类的情况, ...