PaddleSpeech 的window环境搭建

‌PaddleSpeech‌是百度飞桨(PaddlePaddle)深度学习平台下的一个语音服务工具包,飞桨官网它提供了一系列功能,包括语音识别、语音翻译、语音合成等。例如PaddleNLP

PaddleSpeech基于飞桨的语音方向模型库,支持大量基于深度学习前沿和有影响力的模型,为开发者提供了便捷、高效的语音处理解决方案。

PaddleSpeech特别关注于解决实际应用中的挑战,例如中英文混合语音识别。为了应对这种多语言混合的挑战,PaddleSpeech发布了一个中英文语音识别预训练模型Conformer_talcs,这个模型可以通过PaddleSpeech封装的命令行工具CLI或者Python接口快速使用。开发者可以利用这个模型来搭建自己的智能语音应用,或者参考示例训练自己的中英文语音识别模型。

一、概要

PaddleSpeech是PaddlePaddle的子项目,随着人工智能技术的发展,语音合成技术(Text-to-Speech,简称TTS)在各个领域的应用越来越广泛,如智能客服、有声读物、语音助手等。PaddleSpeech,作为PaddlePaddle生态下的语音工具包,为我们提供了一个高效、易用的平台来训练自己的TTS模型,飞酱aistudio很多好玩的东西,非常值得关注。

PaddleSpeech的应用场景广泛,包括但不限于智能内容创作、AI数字人、AI数据分析、智能客服、智能办公等行业智能应用。通过PaddleSpeech,开发者可以构建具有语音识别能力的智能应用,从而提升用户体验和效率。此外,PaddleSpeech还支持通过自定义数据集进行模型训练,使得开发者能够根据具体的应用场景优化模型,提高识别的准确性和适应性‌

PaddleSpeech还支持自定义数据集训练,允许用户根据自己的需求进行模型训练。这包括准备自定义的数据集,进行数据预处理,以及选择合适的模型进行训练。PaddleSpeech提供了丰富的数据预处理工具和多种语音识别模型,如DeepSpeech、Conformer等,以满足不同场景下的语音识别需求。

二、环境准备

在开始使用PaddleSpeach之前,我们需要确保已经安装了PaddlePaddle、PaddleSpeech以及Python环境。我们本次安装的是CPU版本,因为作者的电脑独立显卡是AMD的,目前speach对AMD显卡支持的不太友好,且只支持预测不支持训练,但是对英伟达的支持非常友好,所以鉴于本身机器硬件本身的限制,GPU版本的暂时先不安装。如果你对GPU特别感兴趣,可以参考作者之前写的英伟达并行运算CUDA介绍

  • 操作系统:

    Win10操作系统

Microsoft Windows [版本 10.0.18363.592]
(c) 2019 Microsoft Corporation。保留所有权利。
  • Python环境:
python --version
Python 3.8.10
  • paddle主要安装依赖关系
Package                     Version
--------------------------- -----------
numba                       0.58.1
numpy                       1.24.4
omegaconf                   2.3.0
onnx                        1.16.2
onnxruntime                 1.19.2
OpenCC                      1.1.9
opencc-python-reimplemented 0.1.6
opencv-python               4.6.0.66
opt-einsum                  3.3.0
packaging                   23.2
paddle-bfloat               0.1.7
paddle2onnx                 1.0.6
paddleaudio                 1.1.0
paddlefsl                   1.1.0
paddlenlp                   2.5.2
paddlepaddle                2.4.2
paddlesde                   0.2.5
paddleslim                  2.6.0
paddlespeech                1.4.1
paddlespeech-feat           0.1.0

pandas                      2.0.3
parameterized               0.9.0
parso                       0.8.4
pathos                      0.2.8

特别说明:

PaddlePaddle是独立的平台,PaddleSpeach只是基于它的应用之一,故而两个是独立的项目,所以在安装时候各个版本的依赖关系非常重要,如果版本依赖没搞明白,即时安装成功,在实际的运行中也会遇到各种问题。

目前测试下来,能够正常运行的版本,即本地基于window10 的搭建版本:

  1. wind10操作系统
  2. Python:3.8.10
  3. Paddlepaddle:2.4.2
  4. Paddlespeech:1.4.1
  5. Paddlenlp:2.5.2

 三、安装步骤

1,静态镜像地址:

  • https://pypi.tuna.tsinghua.edu.cn/simple   #清华
  • http://mirrors.aliyun.com/pypi/simple/       #阿里云
  • https://pypi.mirrors.ustc.edu.cn/simple/    #中国科技大学
  • http://pypi.hustunique.com/                   #华中理工大学
  • http://pypi.sdutlinux.org/                     #山东理工大学
  • http://pypi.douban.com/simple/            #豆瓣

2,Paddlepaddle安装

   指定版本安装,否则会安装最新的发布版本2.6.1(与speach不兼容)

python -m pip install paddlepaddle==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

如果之前安装过其他版本,请先卸载,再安装

pip uninstall paddlepaddle

如果安装过程遇到其他问题,可以根据要求降低相关配置,本机实例遇到仅供参考

# 降版本
pip install onnx==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf==3.20.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install opencc-python-reimplemented==0.1.6

2,Paddlespeech安装

指定版本安装,否则会安装最新的发布版本1.4.1(导致与paddlepaddle不兼容)

python -m pip install paddlespeech==1.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

如果之前安装过其他版本,请先卸载,再安装

pip uninstall paddlespeech

3,paddlenlp安装

由于执行过以上两个安装命令,paddlenlp因为是模块的依赖模块,多以会在动安装上,但是由于自动安装依赖版本,安装的是网上最新的可用版本,故而在安装时候会有很多依赖需要降级。

通过如下指令查看依赖版本号

pip list

 如果版本过高,需要先卸载已安装的版本

pip uninstall paddlenlp

在安装指定版本的paddlenlp

python -m pip install paddlenlp==2.5.2  -i https://pypi.tuna.tsinghua.edu.cn/simple

四、简单的命令行测试

  •  语音识别:paddlespeech asr --lang zh --input zh.wav

  • 语音合成:paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav

  • 声音分类:paddlespeech cls --input zh.wav

  • 声纹提取:paddlespeech vector --task spk --input zh.wav

  • 标点恢复:paddlespeech text --task punc --input "今天的你下午有空我想约你一起去吃饭"

  • 语音翻译: paddlespeech st --input en.wav

  • 中英识别:paddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v(指定模型)

指定模型相关参数

  • paddlespeech asr --model conformer_wenetspeech --lang zh --input zh.wav  
  • paddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v
  •  paddlespeech tts --input "湖北十堰竹山县的桃花摇曳多姿,和蓝天白云一起,构成一幅美丽春景。" --output output.wav --am fastspeech2_csmsc --voc hifigan_csmsc --lang zh --spk_id 174
  •  paddlespeech tts --input "一家人在广东深圳为孩子举办了升学宴。" --output output.wav --am fastspeech2_csmsc --voc speedyspeech_csmsc --lang zh

五、Python接口体验 

1,简单的TTS

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

2,语音识别 

import paddle
from paddlespeech.cli.asr import ASRExecutor
asr_executor = ASRExecutor()
text = asr_executor(
    model='conformer_talcs',
    lang='zh_en',
    sample_rate=16000,
    config=None, 
    ckpt_path=None,
    audio_file='./ch_zh_mix.wav',
    codeswitch=True,
    force_yes=False,
    device=paddle.get_device())
print('ASR Result: \n{}'.format(text))

------------------------------
ASR Result:
今天是 monday 明天是tuesday

3,分词 DDParser

from ddparser import DDParser
ddp = DDParser(prob=True, use_pos=True)
ddp.parse(["百度是一家高科技公司"])
>>> [{'word': ['百度', '是', '一家', '高科技', '公司'], 'postag': ['ORG', 'v', 'm', 'n', 'n'], 'head': [2, 0, 5, 5, 2], 'deprel': ['SBV', 'HED', 'ATT', 'ATT', 'VOB'], 'prob': [1.0, 1.0, 1.0, 1.0, 1.0]}]

4,中英混合识别

import time  # 引入time模块
from paddlespeech.cli.tts.infer import TTSExecutor
tts_executor = TTSExecutor()

title ="孙卓已到南京工业大学报到,称学校绿化特别好,还透露“喜欢江南" \
    "9月7日,孙卓晒出赴南京工业大学报到、与父母、姐姐在校园打卡的合照,发文称“九月微风轻拂,来到梦开始的地方”。同日,孙卓的妈妈也发布孩子的入学视频,称“为孩子感到高兴和自豪”,视频当中,孙卓也透露自己(报志愿时)想往江浙这边考,比较喜欢江南。"


text = "据荔枝新闻报道,孙卓称这是自己第一次到南京,对南京工业大学的初印象不错:“跟在来之前上网查到的感觉差不多,绿化做得特别好。”孙卓称,早在入学前,学校就联系上他,热心提供入学提醒和指引报到流程,很多提前在线上就完成了,很便利。" \
       "据此前报道,2007年10月9日19时许,当时4岁的孙卓在深圳被人拐走。此后孙海洋踏上了四处寻子之路,其经历后来被改编成为打拐电影《亲爱的》中角色原型之一。在警方的努力下,案件于2021年告破,孙海洋得以与失散14年的儿子孙卓认亲团聚。" \
       "2024年,孙卓顺利参加高考。7月25日,孙卓通过个人社交账号发布视频称,“OK了家人们,也是有大学上了。”视频晒出的录取通知书显示,孙卓被南京工业大学数理科学学院应用物理学专业录取。" \
       "据网介绍,南京工业大学办学历史可溯源于1902年创办的三江师范学堂,2001年由化工部南京化工大学与建设部南京建筑工程学院合并组建。是首批国家“高等学校创新能力提升计划”(2011计划)牵头高校、江苏高水平大学建设高峰计划A类建设高校。学校设有11个学部,28个学院,各类学生4万余人。涵盖工、理、管、经、文、法、医、艺、教9个学科。" \
       "13日,孙海洋发布视频称,一家人在广东深圳为孩子举办了升学宴。"


startTime = time.time();
output_file = "mix.wav"
tts_executor(text=title+text, output=output_file,
             am="fastspeech2_mix", voc="hifigan_csmsc",
             lang="zh", spk_id=174)

print("结束,耗时:"+(time.time()-startTime))

六、持流式ASR /TTS

1,流式ASR

        启动流式语音识别服务
              paddlespeech_server start --config_file conf/ws_conformer_application.yaml
        访问流式语音识别服务
            paddlespeech_client asr_online  --server_ip 127.0.0.1 --port 8090 --input zh.wav
2,流式TTS
        启动流式语音合成服务
                paddlespeech_server start --config_file conf/tts_online_application.yaml
        访问流式语音合成服务
                paddlespeech_client tts_online  --server_ip 127.0.0.1 --port 8092 --input "您好,欢迎使用百度飞桨深度学习框架!" --output output.wav
3,声纹识别
        启动声纹识别服务
                paddlespeech_server start --config_file conf/vector_application.yaml
        获取说话人音频声纹
                paddlespeech_client vector --task spk  --server_ip 127.0.0.1 --port 8090 --input 85236145389.wav
        两个说话人音频声纹打分
                paddlespeech_client vector --task score  --server_ip 127.0.0.1 --port 8090 --enroll 123456789.wav --test 85236145389.wav 

七、预训练模型

模型    语言转换    语言    采样率
conformer_wenetspeech    False    zh    16k
conformer_online_multicn    False    zh    16k
conformer_aishell    False    zh    16k
conformer_online_aishell    False    zh    16k
transformer_librispeech    False    en    16k
deepspeech2online_wenetspeech    False    zh    16k
deepspeech2offline_aishell    False    zh    16k
deepspeech2online_aishell    False    zh    16k
deepspeech2offline_librispeech    False    en    16k
conformer_talcs    True    zh_en    16k
'speedyspeech_csmsc',
'fastspeech2_csmsc',
'fastspeech2_ljspeech',
'fastspeech2_aishell3',
'fastspeech2_vctk',
'fastspeech2_mix',
'tacotron2_csmsc',
'tacotron2_ljspeech',
'fastspeech2_male',
'fastspeech2_canton',

八、官方参考资料

GitCode - 全球开发者的开源社区,开源代码托管平台

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常生果

喜欢我,请支持我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值