|
20 | 20 | </p> |
21 | 21 | <div align="center"> |
22 | 22 | <h4> |
23 | | - <a href="#快速开始"> 快速开始 </a> |
| 23 | + <a href="#安装"> 安装 </a> |
| 24 | + | <a href="#快速开始"> 快速开始 </a> |
24 | 25 | | <a href="#快速使用服务"> 快速使用服务 </a> |
25 | 26 | | <a href="#快速使用流式服务"> 快速使用流式服务 </a> |
26 | 27 | | <a href="#教程文档"> 教程文档 </a> |
|
36 | 37 |
|
37 | 38 | **PaddleSpeech** 是基于飞桨 [PaddlePaddle](https://github.com/PaddlePaddle/Paddle) 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型,一些典型的应用示例如下: |
38 | 39 |
|
39 | | -**PaddleSpeech** 荣获 [NAACL2022 Best Demo Award](https://2022.naacl.org/blog/best-demo-award/). |
| 40 | +**PaddleSpeech** 荣获 [NAACL2022 Best Demo Award](https://2022.naacl.org/blog/best-demo-award/), 请访问 [Arxiv](https://arxiv.org/abs/2205.12007) 论文。 |
40 | 41 |
|
| 42 | +### 效果展示 |
| 43 | + |
41 | 44 | ##### 语音识别 |
42 | 45 |
|
43 | 46 | <div align = "center"> |
|
154 | 157 | 本项目采用了易用、高效、灵活以及可扩展的实现,旨在为工业应用、学术研究提供更好的支持,实现的功能包含训练、推断以及测试模块,以及部署过程,主要包括 |
155 | 158 | - 📦 **易用性**: 安装门槛低,可使用 [CLI](#quick-start) 快速开始。 |
156 | 159 | - 🏆 **对标 SoTA**: 提供了高速、轻量级模型,且借鉴了最前沿的技术。 |
157 | | -- 🏆 **流式ASR和TTS系统**:工业级的端到端流式识别、流式合成系统。 |
| 160 | +- 🏆 **流式 ASR 和 TTS 系统**:工业级的端到端流式识别、流式合成系统。 |
158 | 161 | - 💯 **基于规则的中文前端**: 我们的前端包含文本正则化和字音转换(G2P)。此外,我们使用自定义语言规则来适应中文语境。 |
159 | 162 | - **多种工业界以及学术界主流功能支持**: |
160 | 163 | - 🛎️ 典型音频任务: 本工具包提供了音频任务如音频分类、语音翻译、自动语音识别、文本转语音、语音合成、声纹识别、KWS等任务的实现。 |
|
182 | 185 | <img src="https://user-images.githubusercontent.com/23690325/169763015-cbd8e28d-602c-4723-810d-dbc6da49441e.jpg" width = "200" /> |
183 | 186 | </div> |
184 | 187 |
|
| 188 | +<a name="安装"></a> |
185 | 189 | ## 安装 |
186 | 190 |
|
187 | 191 | 我们强烈建议用户在 **Linux** 环境下,*3.7* 以上版本的 *python* 上安装 PaddleSpeech。 |
188 | | -目前为止,**Linux** 支持声音分类、语音识别、语音合成和语音翻译四种功能,**Mac OSX、 Windows** 下暂不支持语音翻译功能。 想了解具体安装细节,可以参考[安装文档](./docs/source/install_cn.md)。 |
| 192 | + |
| 193 | +### 相关依赖 |
| 194 | ++ gcc >= 4.8.5 |
| 195 | ++ paddlepaddle >= 2.3.1 |
| 196 | ++ python >= 3.7 |
| 197 | ++ linux(推荐), mac, windows |
| 198 | + |
| 199 | +PaddleSpeech依赖于paddlepaddle,安装可以参考[paddlepaddle官网](https://www.paddlepaddle.org.cn/),根据自己机器的情况进行选择。这里给出cpu版本示例,其它版本大家可以根据自己机器的情况进行安装。 |
| 200 | + |
| 201 | +```shell |
| 202 | +pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple |
| 203 | +``` |
| 204 | + |
| 205 | +PaddleSpeech快速安装方式有两种,一种是pip安装,一种是源码编译(推荐)。 |
| 206 | + |
| 207 | +### pip 安装 |
| 208 | +```shell |
| 209 | +pip install pytest-runner |
| 210 | +pip install paddlespeech |
| 211 | +``` |
| 212 | + |
| 213 | +### 源码编译 |
| 214 | +```shell |
| 215 | +git clone https://github.com/PaddlePaddle/PaddleSpeech.git |
| 216 | +cd PaddleSpeech |
| 217 | +pip install pytest-runner |
| 218 | +pip install . |
| 219 | +``` |
| 220 | + |
| 221 | +更多关于安装问题,如 conda 环境,librosa 依赖的系统库,gcc 环境问题,kaldi 安装等,可以参考这篇[安装文档](docs/source/install_cn.md),如安装上遇到问题可以在 [#2150](https://github.com/PaddlePaddle/PaddleSpeech/issues/2150) 上留言以及查找相关问题 |
189 | 222 |
|
190 | 223 | <a name="快速开始"></a> |
191 | 224 | ## 快速开始 |
192 | 225 |
|
193 | | -安装完成后,开发者可以通过命令行快速开始,改变 `--input` 可以尝试用自己的音频或文本测试。 |
| 226 | +安装完成后,开发者可以通过命令行或者Python快速开始,命令行模式下改变 `--input` 可以尝试用自己的音频或文本测试,支持16k wav格式音频。 |
| 227 | + |
| 228 | +你也可以在`aistudio`中快速体验 👉🏻[PaddleSpeech API Demo ](https://aistudio.baidu.com/aistudio/projectdetail/4281335?shared=1)。 |
194 | 229 |
|
195 | | -**声音分类** |
| 230 | +测试音频示例下载 |
196 | 231 | ```shell |
197 | | -paddlespeech cls --input input.wav |
| 232 | +wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav |
| 233 | +wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wav |
198 | 234 | ``` |
199 | | -**声纹识别** |
| 235 | + |
| 236 | +### 语音识别 |
| 237 | +<details><summary> (点击可展开)开源中文语音识别</summary> |
| 238 | + |
| 239 | +命令行一键体验 |
| 240 | + |
200 | 241 | ```shell |
201 | | -paddlespeech vector --task spk --input input_16k.wav |
| 242 | +paddlespeech asr --lang zh --input zh.wav |
| 243 | +``` |
| 244 | + |
| 245 | +Python API 一键预测 |
| 246 | + |
| 247 | +```python |
| 248 | +>>> from paddlespeech.cli.asr.infer import ASRExecutor |
| 249 | +>>> asr = ASRExecutor() |
| 250 | +>>> result = asr(audio_file="zh.wav") |
| 251 | +>>> print(result) |
| 252 | +我认为跑步最重要的就是给我带来了身体健康 |
202 | 253 | ``` |
203 | | -**语音识别** |
| 254 | +</details> |
| 255 | + |
| 256 | +### 语音合成 |
| 257 | + |
| 258 | +<details><summary> 开源中文语音合成</summary> |
| 259 | + |
| 260 | +输出 24k 采样率wav格式音频 |
| 261 | + |
| 262 | + |
| 263 | +命令行一键体验 |
| 264 | + |
204 | 265 | ```shell |
205 | | -paddlespeech asr --lang zh --input input_16k.wav |
| 266 | +paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav |
| 267 | +``` |
| 268 | + |
| 269 | +Python API 一键预测 |
| 270 | + |
| 271 | +```python |
| 272 | +>>> from paddlespeech.cli.tts.infer import TTSExecutor |
| 273 | +>>> tts = TTSExecutor() |
| 274 | +>>> tts(text="今天天气十分不错。", output="output.wav") |
206 | 275 | ``` |
207 | | -**语音翻译** (English to Chinese) |
| 276 | +- 语音合成的 web demo 已经集成进了 [Huggingface Spaces](https://huggingface.co/spaces). 请参考: [TTS Demo](https://huggingface.co/spaces/KPatrick/PaddleSpeechTTS) |
| 277 | + |
| 278 | +</details> |
| 279 | + |
| 280 | +### 声音分类 |
| 281 | + |
| 282 | +<details><summary> 适配多场景的开放领域声音分类工具</summary> |
| 283 | + |
| 284 | +基于AudioSet数据集527个类别的声音分类模型 |
| 285 | + |
| 286 | +命令行一键体验 |
| 287 | + |
208 | 288 | ```shell |
209 | | -paddlespeech st --input input_16k.wav |
| 289 | +paddlespeech cls --input zh.wav |
210 | 290 | ``` |
211 | | -**语音合成** |
| 291 | + |
| 292 | +python API 一键预测 |
| 293 | + |
| 294 | +```python |
| 295 | +>>> from paddlespeech.cli.cls.infer import CLSExecutor |
| 296 | +>>> cls = CLSExecutor() |
| 297 | +>>> result = cls(audio_file="zh.wav") |
| 298 | +>>> print(result) |
| 299 | +Speech 0.9027186632156372 |
| 300 | +``` |
| 301 | + |
| 302 | +</details> |
| 303 | + |
| 304 | +### 声纹提取 |
| 305 | + |
| 306 | +<details><summary> 工业级声纹提取工具</summary> |
| 307 | + |
| 308 | +命令行一键体验 |
| 309 | + |
212 | 310 | ```shell |
213 | | -paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav |
| 311 | +paddlespeech vector --task spk --input zh.wav |
214 | 312 | ``` |
215 | | -- 语音合成的 web demo 已经集成进了 [Huggingface Spaces](https://huggingface.co/spaces). 请参考: [TTS Demo](https://huggingface.co/spaces/akhaliq/paddlespeech) |
216 | 313 |
|
217 | | -**文本后处理** |
218 | | - - 标点恢复 |
219 | | - ```bash |
220 | | - paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 |
221 | | - ``` |
| 314 | +Python API 一键预测 |
222 | 315 |
|
223 | | -**批处理** |
| 316 | +```python |
| 317 | +>>> from paddlespeech.cli.vector import VectorExecutor |
| 318 | +>>> vec = VectorExecutor() |
| 319 | +>>> result = vec(audio_file="zh.wav") |
| 320 | +>>> print(result) # 187维向量 |
| 321 | +[ -0.19083306 9.474295 -14.122263 -2.0916545 0.04848729 |
| 322 | + 4.9295826 1.4780062 0.3733844 10.695862 3.2697146 |
| 323 | + -4.48199 -0.6617882 -9.170393 -11.1568775 -1.2358263 ...] |
224 | 324 | ``` |
225 | | -echo -e "1 欢迎光临。\n2 谢谢惠顾。" | paddlespeech tts |
| 325 | + |
| 326 | +</details> |
| 327 | + |
| 328 | +### 标点恢复 |
| 329 | + |
| 330 | +<details><summary> 一键恢复文本标点,可与ASR模型配合使用</summary> |
| 331 | + |
| 332 | +命令行一键体验 |
| 333 | + |
| 334 | +```shell |
| 335 | +paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭 |
| 336 | +``` |
| 337 | + |
| 338 | +Python API 一键预测 |
| 339 | + |
| 340 | +```python |
| 341 | +>>> from paddlespeech.cli.text.infer import TextExecutor |
| 342 | +>>> text_punc = TextExecutor() |
| 343 | +>>> result = text_punc(text="今天的天气真不错啊你下午有空吗我想约你一起去吃饭") |
| 344 | +今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。 |
226 | 345 | ``` |
227 | 346 |
|
228 | | -**Shell管道** |
229 | | -ASR + Punc: |
| 347 | +</details> |
| 348 | + |
| 349 | +### 语音翻译 |
| 350 | + |
| 351 | +<details><summary> 端到端英译中语音翻译工具</summary> |
| 352 | + |
| 353 | +使用预编译的kaldi相关工具,只支持在Ubuntu系统中体验 |
| 354 | + |
| 355 | +命令行一键体验 |
| 356 | + |
| 357 | +```shell |
| 358 | +paddlespeech st --input en.wav |
230 | 359 | ``` |
231 | | -paddlespeech asr --input ./zh.wav | paddlespeech text --task punc |
| 360 | + |
| 361 | +python API 一键预测 |
| 362 | + |
| 363 | +```python |
| 364 | +>>> from paddlespeech.cli.st.infer import STExecutor |
| 365 | +>>> st = STExecutor() |
| 366 | +>>> result = st(audio_file="en.wav") |
| 367 | +['我 在 这栋 建筑 的 古老 门上 敲门 。'] |
232 | 368 | ``` |
233 | 369 |
|
234 | | -更多命令行命令请参考 [demos](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos) |
235 | | -> Note: 如果需要训练或者微调,请查看[语音识别](./docs/source/asr/quick_start.md), [语音合成](./docs/source/tts/quick_start.md)。 |
| 370 | +</details> |
| 371 | + |
| 372 | + |
236 | 373 |
|
237 | 374 | <a name="快速使用服务"></a> |
238 | 375 | ## 快速使用服务 |
239 | | -安装完成后,开发者可以通过命令行快速使用服务。 |
| 376 | +安装完成后,开发者可以通过命令行一键启动语音识别,语音合成,音频分类三种服务。 |
240 | 377 |
|
241 | 378 | **启动服务** |
242 | 379 | ```shell |
@@ -614,6 +751,7 @@ PaddleSpeech 的 **语音合成** 主要包含三个模块:文本前端、声 |
614 | 751 |
|
615 | 752 | 语音合成模块最初被称为 [Parakeet](https://github.com/PaddlePaddle/Parakeet),现在与此仓库合并。如果您对该任务的学术研究感兴趣,请参阅 [TTS 研究概述](https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/docs/source/tts#overview)。此外,[模型介绍](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/tts/models_introduction.md) 是了解语音合成流程的一个很好的指南。 |
616 | 753 |
|
| 754 | + |
617 | 755 | ## ⭐ 应用案例 |
618 | 756 | - **[PaddleBoBo](https://github.com/JiehangXie/PaddleBoBo): 使用 PaddleSpeech 的语音合成模块生成虚拟人的声音。** |
619 | 757 |
|
|
0 commit comments