报错处理:处理使用 PaddleSpeech 过程中出现的报错 ValueError (InvalidArgument) Broadcast dimension mismatch
一、创建项目
创建项目:
填写项目名称:
启动项目:
二、进入终端配置环境
1、进入终端:
2、克隆 PaddleSpeech
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
3、安装 Conda 后创建虚拟环境并激活
安装 Conda
:
# 下载 miniconda
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -P tools/
# 安装 miniconda
bash tools/Miniconda3-latest-Linux-x86_64.sh -b
# conda 初始化
$HOME/miniconda3/bin/conda init
# 激活 conda
bash
创建一个 conda
的虚拟环境:
conda create -y -p tools/venv python=3.8
激活 conda
虚拟环境:
conda activate tools/venv
安装 paddlespeech
的 conda
依赖:
conda install -y -c conda-forge sox libsndfile swig bzip2
4、安装 C++ 编译环境
注:在该环境中默认已经安装了 C++ 编译环境,可跳过。
5、安装 PaddlePaddle
此处指定版本为 2.4.2
:
pip install paddlepaddle==2.4.2 -i https://mirror.baidu.com/pypi/simple
6、安装 PaddleSpeech
部分用户系统由于默认源的问题,安装中会出现 kaldiio 安转出错的问题,建议首先安装 pytest-runner
:
pip install pytest-runner -i https://pypi.tuna.tsinghua.edu.cn/simple
请确保目前处于 PaddleSpeech
项目的根目录:
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple
根据网上查找的资料,最好降低部分依赖包的版本,否则使用过程中可能会出现报错:
pip install paddlespeech==1.4.1
pip install paddlenlp==2.5.2
安装过程参考(中等难度方法):https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install_cn.md
三、报错处理
1、出现报错 TypeError: Descriptors cannot be created directly.
验证是否成功安装 paddlespeech
:
paddlespeech
报错详情:
TypeError: Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
解决方法:
pip install protobuf==3.19.0
参考链接:https://blog.csdn.net/qq_51447436/article/details/125573273
2、出现报错 ImportError: /usr/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32 not found
说明:在使用语音合成功能过程中出现报错。
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
解决方法:
pip install opencc-python-reimplemented==0.1.6
参考链接:https://blog.csdn.net/tomjimn/article/details/135013851
3、出现报错 IndexError: list index out of range
每次安装时出现的报错都不太一样,该报错出现过一次,主要是依赖包的问题,注意以下依赖包版本:
paddlenlp 2.5.2
paddlepaddle 2.4.2
paddlespeech 1.4.1
尝试降低部分依赖包版本后不再报错。
参考链接:https://blog.csdn.net/qq_37016358/article/details/131979815
四、基本功能使用
下载测试音频:
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wav
1、语音识别
paddlespeech asr --lang zh --input zh.wav
识别结果:
2、语音合成
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
输出:
3、声音分类
paddlespeech cls --input zh.wav
输出:
4、声纹提取
paddlespeech vector --task spk --input zh.wav
输出:
5、标点恢复
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭
输出:
6、语音翻译
paddlespeech st --input en.wav
输出:
7、上传自定义文件实现语音识别(英文内容)
此处上传了一个 .wav
的音频文件,内容为单词的发音。
执行命令:
paddlespeech asr --lang en --model deepspeech2offline_librispeech --input numerous.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 |
参考链接:https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/speech_recognition/README_cn.md
五、问题补充
1、部分依赖包版本
查看命令:
pip list|grep paddle
指定包查看:
pip show ppdiffusers
部分依赖包版本展示:
paddle-bfloat 0.1.7
paddle2onnx 1.1.0
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-ctcdecoders 0.2.1
paddlespeech-feat 0.1.0
ppdiffusers 0.19.4
Python 3.8.18
2、重新启动项目后如何进入?
激活 conda
:
# conda 初始化
$HOME/miniconda3/bin/conda init
# 激活 conda
bash
激活 conda
虚拟环境:
# 进入 PaddleSpeech
cd PaddleSpeech
# 激活 conda 虚拟环境:
conda activate tools/venv