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 使用总结 在给客户开发客户端软件时,为避免技术人员亲自上门安装带来额外的成本损耗,通常我们都会自作一个安装包,以确保我们开发的程序的相关依赖资源.环境在客户端运行前能自动 ...
随机推荐
- uniapp的下载
简介 - HBuilderX 文档 (dcloud.net.cn) 下载Hbuiler 直接打开HbuilderX.exe就可以直接使用 可以通过他来创建模板 目录
- VSCode个性化的配置
1.下载插件 Eclipse快捷键(我以前用Eclipse习惯了,大家不需要) Premitter Vetur koroFileHeader 2.修改VSCode设置 3.粘贴下面的代码 { &quo ...
- 可视化学习:CSS transform与仿射变换
引言 在几年前,我就在一些博客中看到关于CSS中transform的分析,讲到它与线性代数中矩阵的关系,但当时由于使用transform比较少,再加上我毕竟是个数学学渣,对数学有点畏难心理,就有点看不 ...
- 华企盾DSC由于半透明软件设置了需要管理员权限打开导致半透明打不开加密文件
解决方法: 1.右键该应用程序->属性->兼容性,去掉[以管理员权限运行此程序] 2.也可以打开控制面板->系统和安全->用户账户控制设置调至最低
- STM32CubeMX教程3 GPIO输入 - 按键响应
1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 2 ...
- MySQL部署后配置
授权root用户登录 #仅本地登录,修改密码用 alter user root@'localhost' identified with mysql_native_password by'******* ...
- (Dnc系列)借助Dnc.Events.InMemory在三分钟实现一个内存级别的事件驱动处理模型
前言 Dnc.Events是在借鉴领域驱动设计大佬daxnet的博客基础上做的基于内存级别的EDA处理模型,不清楚EDA的童鞋请自行百度. 第一分钟 安装Nuget Dnc.Events.InMemo ...
- 5大特性,带你认识化繁为简的华为云CodeArts Deploy
摘要:2月27日,华为云发布持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,帮助企业软件产品的快速.高效.高质量交付. 本文分享自华为云社区<化繁为 ...
- 聊聊Java的异常机制问题
摘要:java异常指在程序运行时可能出现的一些错误,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流. 本文分享自华为云社区<Ja ...
- JVM面试必问:G1垃圾回收器
摘要:G1垃圾回收器是一款主要面向服务端应用的垃圾收集器. 本文分享自华为云社区<JVM面试高频考点:由浅入深带你了解G1垃圾回收器!!!>,原文作者:Code皮皮虾 . G1垃圾回收器介 ...