文章目录

  • 前言
  • 一、PaddleSpeech
    • 1.1 安装
    • 1.2 运行
    • 1.3 更多功能
  • 二、ASRT
    • 2.1 安装
    • 2.2 运行
  • 三、MASR
    • 3.1 安装
    • 3.2 运行
  • 四、ESPnet
    • 4.1 安装
    • 4.2 运行
  • 五、WeNet
    • 5.1 安装
    • 5.2 运行
  • 六、DeepSpeech
    • 6.1 安装
    • 6.2 运行
  • 参考

前言

摘自百度百科

语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。

语音识别是深度学习领域之一, 在 github 上也有很多项目实现 ASR, 支持中文 ASR 的部分项目如下,下面会演示简单使用

  1. https://github.com/PaddlePaddle/PaddleSpeech
  2. https://github.com/nl8590687/ASRT_SpeechRecognition
  3. https://github.com/nobody132/masr
  4. https://github.com/espnet/espnet
  5. https://github.com/wenet-e2e/wenet
  6. https://github.com/mozilla/DeepSpeech

一、PaddleSpeech

PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。

PaddleSpeech 荣获 NAACL2022 Best Demo Award, 请访问 Arxiv 论文。

1.1 安装

根据官方文档安装即可:https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/README_cn.md#%E5%AE%89%E8%A3%85

官方强烈建议用户在 Linux 环境下,3.7 以上版本的 python 上安装 PaddleSpeech。

但是我电脑是 windows , 而且 python 版本为 3.6.5。选择在windows 下安装 python 3.7.0 版本:https://www.python.org/downloads/windows/,安装过程中报以下错误

pip install paddlespeech

问题一:paddlespeech-ctcdecoders 版本错误

 Could not find a version that satisfies the requirement paddlespeech-ctcdecoders (from paddlespeech) (from versions: )
No matching distribution found for paddlespeech-ctcdecoders (from paddlespeech)

发现 paddlespeech-ctcdecoders 并没有 windows 版本,而且发现已经有人编译windows 版本了,初次编译paddlespeech-ctcdecoders的windows版本,不过官方提示:paddlespeech-ctcdecoders 没有安装成功不要紧,这个包不是必须的。

问题二:gbk 编码错误

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 5365: illegal multibyte sequence

这个问题等我再次运行就消失了

1.2 运行

报找不到文件错误:

FileNotFoundError: [WinError 2] 系统找不到指定的文件。

打开 Python\Python37\lib\subprocess.py 文件,在684行将 shell=False 改为 shell=True

    _child_created = False  # Set here since __del__ checks itdef __init__(self, args, bufsize=-1, executable=None,stdin=None, stdout=None, stderr=None,preexec_fn=None, close_fds=True,shell=True, cwd=None, env=None, universal_newlines=None,startupinfo=None, creationflags=0,restore_signals=True, start_new_session=False,pass_fds=(), *, encoding=None, errors=None, text=None):

使用官方的例子测试:

paddlespeech asr --lang zh --input C:\Users\supre\Desktop\sound\PaddleSpeech-develop\zh.wav

使用自己录音的两个例子测试,发现很精确。

1.3 更多功能

除了语音识别,还支持更多功能

  1. 声音分类
paddlespeech cls --input input.wav
  1. 声纹识别
paddlespeech vector --task spk --input input_16k.wav
  1. 语音翻译(英-中)(暂不支持 Windows 系统)
paddlespeech st --input input_16k.wav
  1. 语音合成
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav

发现 “你好,aabond, 欢迎使用百度飞桨” 其中 aabond 并没有语音,猜测并不能合成英文,可能需要提供其它参数

  1. 标点恢复
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭

二、ASRT

ASRT 是一个基于深度学习的中文语音识别系统,使用 tensorFlow.keras 基于深度卷积神经网络和长短时记忆神经网络、注意力机制以及CTC 实现。

2.1 安装

下载服务端,安装依赖

$ pip install tensorflow==2.5.2
$ pip install wave
$ pip install matplotlib
$ pip install requests
$ pip install scipy
$ pip install flask
$ pip install waitress

下载客户端

2.2 运行

python asrserver_http.py

使用百度demo 作为例子,能够正确显示

使用自己录音作为例子,“说话的艺术”被识别为“上”,并不能正确显示,难道是因为我说话太快?应该需要训练数据

还可以实时语音识别,发现精确度一般

三、MASR

MASR 是一个基于端到端的深度神经网络中文普通话语音识别项目.

MASR 使用的是门控卷积神经网络(Gated Convolutional Network),网络结构类似于 Facebook 在2016年提出的 Wav2letter 。但是使用的激活函数不是 ReLU 或者是 HardTanh,而是GLU(门控线性单元)。因此称作门控卷积网络。根据我的实验,使用GLU的收敛速度比 HardTanh 要快。如果你想要研究卷积网络用于语音识别的效果,这个项目可以作为一个参考。

3.1 安装

下载源码,下载预训练模型数据,在源码目录下新建一个 pretrained 目录, 并将模型文件放入其中

3.2 运行

python examples/demo-record-recognize.py

识别结果:

“说话的艺术” 识别为 “说化和一数”

“只因你太美” 识别为 “只因里派云”

四、ESPnet

ESPnet:端到端语音处理工具包,涵盖了端到端语音识别、文本到语音、语音翻译、语音增强、说话者二值化、口语理解等。ESPnet 使用 pytorch 作为深度学习引擎,并遵循 Kaldi 风格的数据处理、特征提取/格式和配方,为各种语音处理实验提供一个完整的设置。

4.1 安装

pip install espnet
pip install espnet_model_zoo
pip install kenlm

4.2 运行

运行下面代码,可能下载速度太慢,可手动下载中文模型数据,放在Python安装路径 Python36\Lib\site-packages\espnet_model_zoo\a1dd2b872b48358daa6e136d4a5ab08b下面,加快速度

import soundfile
from espnet_model_zoo.downloader import ModelDownloader
from espnet2.bin.asr_inference import Speech2Text
d = ModelDownloader()
speech2text = Speech2Text(
**d.download_and_unpack("kamo-naoyuki/aishell_conformer"),# Decoding parameters are not included in the model filemaxlenratio=0.0,minlenratio=0.0,beam_size=20,ctc_weight=0.3,lm_weight=0.5,penalty=0.0,nbest=1
)
audio, rate = soundfile.read("zh.wav")
nbests = speech2text(audio)
text, *_ = nbests[0]
print(text)

可发现百度demo 能够正确识别

测试自己录音demo, “说话的艺术” 识别为 “说话的约束”

五、WeNet

Wenet是出门问问语音团队联合西工大语音实验室开源的一款面向工业落地应用的语音识别工具包,该工具用一套简洁的方案提供了语音识别从训练到部署的一条龙服务,其主要特点如下:

  • 使用 conformer 网络结构和 CTC/attention loss 联合优化方法,具有业界一流的识别效果。
  • 提供云上和端上直接部署的方案,最小化模型训练和产品落地之间的工程工作。
  • 框架简洁,模型训练部分完全基于pytorch生态,不依赖于kaldi等安装复杂的工具。
  • 详细的注释和文档,十分适合用于学习端到端语音识别的基础知识和实现细节。

5.1 安装

pip install wenetruntime

5.2 运行

import sys
import wenetruntime as wenetwav_file = sys.argv[1]
decoder = wenet.Decoder(lang='chs')
ans = decoder.decode_wav(wav_file)
print(ans)

如果下载文件太慢,可通过手动下载 文件到 C:\Users\supre\.wenet\chs 目录下,记住要解压 chs.tar.gz,而不要再解压 final.zip。

使用百度demo测试,很精确

使用自己录音声音测试,报错如下:

应该是只能输入单声道,而我录音的是双声道。解决方法:使用 Audacity 录音,并将声道改为单声道,并将采样频率修改为 16000 HZ,编码器默认不变,否则会出现下面的错误

最终结果,还是很精确的。

六、DeepSpeech

DeepSpech 是一个开源的语音到文本( Speech-To-Text, STT )引擎,使用了基于百度深度语音研究论文的机器学习技术训练的模型。深度语音项目使用谷歌的Tensorflow,使实现更容易。

6.1 安装

pip install deepspeech

6.2 运行

下载中文模型:deepspeech-0.9.3-models-zh-CN.pbmm,deepspeech-0.9.3-models-zh-CN.scorer

deepspeech --model deepspeech-0.9.3-models-zh-CN.pbmm --scorer deepspeech-0.9.3-models-zh-CN.scorer --audio zh.wav

使用 百度 demo 测试,有误差

使用自己录音,“说话的艺术” 识别为 “兰花的一杯”

使用 deepspeech 自带数据测试 “他有两个哥哥” 识别为 “会有两个哥哥”

参考

  1. import paddle 遇到错误
  2. 教你如何使用ASRT部署中文语音识别API服务器
  3. Wenet - 面向工业落地的E2E语音识别工具

6款支持中文语音识别开源软件的简单使用相关推荐

  1. python文本分析的开源工具_共有11款Python 中文分词库开源软件

    "哑哈"中文分词,更快或更准确,由你来定义.通过简单定制,让分词模块更适用于你的需求. "Yaha" You can custom your Chinese W ...

  2. PyTorch-Kaldi 深度学习语音识别开源软件

    PyTorch-Kaldi 深度学习语音识别开源软件 论文:Ravanelli M (Mirco Ravanelli), Parcollet T, Bengio Y. The Pytorch-kald ...

  3. [vulfocus漏洞复现]thinkcmf 代码执行漏洞复现 (CVE-2019-7580)phpinfo();ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPH

    前言 ThinkCMF是一款支持Swoole的开源内容管理框架(CMF),基于ThinkPHP开发. thinkcmf5.0.19 这个版本后台提供路由自定义,其中路由的别名对单引号缺少过滤,导致引发 ...

  4. 6款支持中文开源OCR软件的简单使用

    文章目录 前言 一.Tesseract OCR 1.1 安装 1.2 运行 二.PaddleOCR 2.1 安装 2.2 运行 三.EasyOCR 3.1 安装 3.2 运行 四.chineseocr ...

  5. 6款人脸识别开源软件的简单使用

    文章目录 前言 一.face_recognition 1.1 安装 1.2 检测人脸位置 1.3 识别人脸 二.PaddleDetection 2.1 安装 2.2 运行 三.DeepFace 3.1 ...

  6. 五款支持Mac的设计软件

    大学一毕业,我就投身到UI设计行业里,作为非专业出身的设计师,我付出的努力比入行前预想的还要多,就我自己的经验而言,UI设计不仅要有设计功底,同时还要有用户思维,当然,掌握好几款合适的软件也是非常重要 ...

  7. ThinkCMF是一款支持Swoole的开源内容管理框架,基于ThinkPHP开发,同时支持PHP-FPM和Swoole双模式,让WEB开发更快!

    简介: ThinkCMF5.1主要特性 更改框架协议为MIT,让你更自由地飞 基于ThinkPHP 5.1重构,但核心代码兼容5.0版本,保证老用户最小升级成本 增加对swoole支持,同时支持swo ...

  8. 推荐五款免费的开源软件,总有一款适合你

    今天我为大家推荐五款不同类型的开源软件,它们都是免费的,而且有着各自的特色和优势. 1.系统优化--BleachBit BleachBit是一个开源的系统清理和优化软件,可用于清理系统垃圾.保护隐私和 ...

  9. win8 性能测试软件,首款支持Win8性能测试 新版3D Mark使用体验

    1没错,它就叫3D Mark! [天极网DIY硬件频道]没错,它就叫3D Mark! 众所周知,3D Mark与PC Mark并列为最具权威性的系统性能测试软件,该系列软件也受到了用户的肯定与欢迎.而 ...

  10. 我所理解的开源软件供应链安全

    供应链与断供 隐喻会帮助人,也会误导人. 当我们谈到"供应链"时,会产生哪些联想?环环相扣?缺一不可?掉链子?当我们这样去思考软件供应链,或者开源软件供应链时,同样的"意 ...

最新文章

  1. Qt中openGL的四个重要事件(initializeGL() resizeGL() paintGL() pdateGL())调用规则
  2. 轻松学Pytorch-使用卷积神经网络实现图像分类
  3. android adb启动不了
  4. EditText 自动保留两位小数
  5. QT的QDeadlineTimer类的使用
  6. shell判定一个变量等于-n_Shell test命令:条件判断,检查某条件是否成立
  7. axure web组件下载_Element - 饿了么团队出品的神级桌面 UI 组件库
  8. java.net.url 中文乱码,.Net获取URL中文参数值的乱码问题解决方法总结
  9. 前端判断是否安装桌面应用_前端开发人员的桌面应用神器 Electron
  10. Linux常用命令——xargs
  11. linux查看445端口状态,linux和Windows如何查看端口占用情况
  12. 邮件在线编辑器-零基础制作精美图文并茂的HTML邮件不费力
  13. 7-2 查询水果价格 (15 分)
  14. mysql 存储过程 总结_Mysql存储过程总结
  15. ARPU与ARPPU 的概念
  16. java编程成绩评分分等级_java编写成绩等级,最高分为best
  17. python爬虫今日头条_python 简单爬取今日头条热点新闻(
  18. asp.net中使用JMail发邮件
  19. AutoCAD 2008 简体中文精简版(适合低配置电脑)
  20. 《A Transformer-based joint-encoding for Emotion Recognition andSentiment Analysis》论文翻译

热门文章

  1. wifi无线设备服务器驱动,如何安装Windows 10的WiFi驱动程序
  2. 如何恢复删除的文件?wps文件恢复,4种方法教你找回来
  3. ⭐️ vue项目使用微信表情;vue引入微信表情emoji;vue中使用微信表情包emoji;
  4. 打印一只Nyan Cat(彩虹猫)(C++)
  5. Mysql数据库自动备份
  6. php二维码与电子名片
  7. 【Unity】Unity Pivot 与 Center Globle 与Lical
  8. 华为HCIE云计算培训笔记第3天
  9. 手机APP逆向工具介绍
  10. 【算法】路径规划中的Dijkstra(狄克斯特拉)与A星算法