Python使用PaddleSpeech实现语音识别(ASR)、语音合成(TTS)

本文介绍了如何安装PaddleSpeech,包括Python版本要求和urllib3库的管理。详细说明了语音识别、补全标点的功能及其使用方法,并展示了语音合成的实例。
摘要由CSDN通过智能技术生成

目录

安装

语音识别

补全标点

语音合成

参考


PaddleSpeech是百度飞桨开发的语音工具

安装

注意,PaddleSpeech不支持过高版本的Python,因为在高版本的Python中,飞桨不再提供paddle.fluid API。这里面我用的是Python3.7

需要通过3个pip命令安装PaddleSpeech:

pip install paddlepaddle==2.4.2
pip install pytest-runner
pip install paddlespeech

在使用的时候,urllib3库可能会报错,因此需要对它进行降级:

pip uninstall urllib3
pip install urllib3==1.26.18

语音识别

PaddleSpeech的语音识别非常简单:

from paddlespeech.cli.asr.infer import ASRExecutor
asr = ASRExecutor()
result = asr(audio_file="zh.wav")
print(result)

输出:

我们说四十二号混凝土不能与引力场相互搅拌不然会因为爱因斯坦的相对论而引发炸串的食品安全问题这是严重的金融危机

可以看到,这里面没有标点符号。我们可以通过TextExecutor()补全标点

补全标点

在补全标点之前,需要在C:\Users\<你的用户名>\AppData\Roaming下创建一个nltk_data文件夹,然后将这个链接里面的文件夹都复制进去:

项目目录预览 - nltk_data - GitCode

 接下来从tokenizers文件夹下找到punkt.zip文件,然后将这个zip文件里的punkt文件夹复制到nltk_data文件夹里。

 这样我们就做好了补全标点前的准备。

补全标点也很简单,它的基础用法如下:

from paddlespeech.cli.text.infer import TextExecutor
text_punc = TextExecutor()
result = text_punc(text=u"今天的天气真不错啊你下午有空吗我想约你一起去吃饭")
print(result)

输出:

今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。

 我们可以将补全标点和语音识别结合起来:

from paddlespeech.cli.asr.infer import ASRExecutor
from paddlespeech.cli.text.infer import TextExecutor
text_punc = TextExecutor()
asr = ASRExecutor()
asr_result = asr(audio_file="zh.wav")
result = text_punc(text=asr_result)
print(result)

 输出:

我们说,四十二号混凝土不能与引力场相互搅拌,不然,会因为爱因斯坦的相对论,而引发炸串的食品安全问题,这是严重的金融危机。

语音合成

语音合成可以使用TTSExecutor:

from paddlespeech.cli.tts.infer import TTSExecutor
tts = TTSExecutor()
tts(text="今天天气十分不错。", output="output.wav")

最后会在当前目录下生成一个output.wav音频 

参考

PaddleSpeech: Easy-to-use Speech Toolkit including SOTA ASR pipeline, influential TTS with text frontend and End-to-End Speech Simultaneous Translation. (gitee.com)

[TTS]我运行语音专文本的示例代码报错 · Issue #3488 · PaddlePaddle/PaddleSpeech · GitHub 

nltk包下载慢的解决方案(总结)_nltk download太慢-CSDN博客 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值