Skip to content

Commit 7bbd909

Browse files
committed
Merge branch 'develop' of github.com:PaddlePaddle/PaddleSpeech into fix_name_bug
2 parents bc6d10b + bc2613b commit 7bbd909

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1110
-562
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
| <a href="#documents"> Documents </a>
2626
| <a href="#model-list"> Models List </a>
2727
| <a href="https://aistudio.baidu.com/aistudio/education/group/info/25130"> AIStudio Courses </a>
28-
| <a href="https://arxiv.org/abs/2205.12007"> NAACL2022 Paper </a>
28+
| <a href="https://arxiv.org/abs/2205.12007"> NAACL2022 Best Demo Award Paper </a>
2929
| <a href="https://gitee.com/paddlepaddle/PaddleSpeech"> Gitee </a>
3030
</h4>
3131
</div>
@@ -34,7 +34,7 @@
3434

3535
**PaddleSpeech** is an open-source toolkit on [PaddlePaddle](https://github.com/PaddlePaddle/Paddle) platform for a variety of critical tasks in speech and audio, with the state-of-art and influential models.
3636

37-
**PaddleSpeech** won the [NAACL2022 Best Demo Award](https://2022.naacl.org/blog/best-demo-award/).
37+
**PaddleSpeech** won the [NAACL2022 Best Demo Award](https://2022.naacl.org/blog/best-demo-award/), please check out our paper on [Arxiv](https://arxiv.org/abs/2205.12007).
3838

3939
##### Speech Recognition
4040

@@ -179,7 +179,7 @@ Via the easy-to-use, efficient, flexible and scalable implementation, our vision
179179

180180
## Installation
181181

182-
We strongly recommend our users to install PaddleSpeech in **Linux** with *python>=3.7*.
182+
We strongly recommend our users to install PaddleSpeech in **Linux** with *python>=3.7* and *paddlepaddle>=2.3.1*.
183183
Up to now, **Linux** supports CLI for the all our tasks, **Mac OSX** and **Windows** only supports PaddleSpeech CLI for Audio Classification, Speech-to-Text and Text-to-Speech. To install `PaddleSpeech`, please see [installation](./docs/source/install.md).
184184

185185

README_cn.md

Lines changed: 167 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
</p>
2121
<div align="center">
2222
<h4>
23-
<a href="#快速开始"> 快速开始 </a>
23+
<a href="#安装"> 安装 </a>
24+
| <a href="#快速开始"> 快速开始 </a>
2425
| <a href="#快速使用服务"> 快速使用服务 </a>
2526
| <a href="#快速使用流式服务"> 快速使用流式服务 </a>
2627
| <a href="#教程文档"> 教程文档 </a>
@@ -36,8 +37,10 @@
3637

3738
**PaddleSpeech** 是基于飞桨 [PaddlePaddle](https://github.com/PaddlePaddle/Paddle) 的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型,一些典型的应用示例如下:
3839

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) 论文。
4041

42+
### 效果展示
43+
4144
##### 语音识别
4245

4346
<div align = "center">
@@ -154,7 +157,7 @@
154157
本项目采用了易用、高效、灵活以及可扩展的实现,旨在为工业应用、学术研究提供更好的支持,实现的功能包含训练、推断以及测试模块,以及部署过程,主要包括
155158
- 📦 **易用性**: 安装门槛低,可使用 [CLI](#quick-start) 快速开始。
156159
- 🏆 **对标 SoTA**: 提供了高速、轻量级模型,且借鉴了最前沿的技术。
157-
- 🏆 **流式ASR和TTS系统**:工业级的端到端流式识别、流式合成系统。
160+
- 🏆 **流式 ASR 和 TTS 系统**:工业级的端到端流式识别、流式合成系统。
158161
- 💯 **基于规则的中文前端**: 我们的前端包含文本正则化和字音转换(G2P)。此外,我们使用自定义语言规则来适应中文语境。
159162
- **多种工业界以及学术界主流功能支持**:
160163
- 🛎️ 典型音频任务: 本工具包提供了音频任务如音频分类、语音翻译、自动语音识别、文本转语音、语音合成、声纹识别、KWS等任务的实现。
@@ -182,61 +185,195 @@
182185
<img src="https://user-images.githubusercontent.com/23690325/169763015-cbd8e28d-602c-4723-810d-dbc6da49441e.jpg" width = "200" />
183186
</div>
184187

188+
<a name="安装"></a>
185189
## 安装
186190

187191
我们强烈建议用户在 **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) 上留言以及查找相关问题
189222

190223
<a name="快速开始"></a>
191224
## 快速开始
192225

193-
安装完成后,开发者可以通过命令行快速开始,改变 `--input` 可以尝试用自己的音频或文本测试。
226+
安装完成后,开发者可以通过命令行或者Python快速开始,命令行模式下改变 `--input` 可以尝试用自己的音频或文本测试,支持16k wav格式音频。
227+
228+
你也可以在`aistudio`中快速体验 👉🏻[PaddleSpeech API Demo ](https://aistudio.baidu.com/aistudio/projectdetail/4281335?shared=1)
194229

195-
**声音分类**
230+
测试音频示例下载
196231
```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
198234
```
199-
**声纹识别**
235+
236+
### 语音识别
237+
<details><summary>&emsp;(点击可展开)开源中文语音识别</summary>
238+
239+
命令行一键体验
240+
200241
```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+
我认为跑步最重要的就是给我带来了身体健康
202253
```
203-
**语音识别**
254+
</details>
255+
256+
### 语音合成
257+
258+
<details><summary>&emsp;开源中文语音合成</summary>
259+
260+
输出 24k 采样率wav格式音频
261+
262+
263+
命令行一键体验
264+
204265
```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")
206275
```
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>&emsp;适配多场景的开放领域声音分类工具</summary>
283+
284+
基于AudioSet数据集527个类别的声音分类模型
285+
286+
命令行一键体验
287+
208288
```shell
209-
paddlespeech st --input input_16k.wav
289+
paddlespeech cls --input zh.wav
210290
```
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>&emsp;工业级声纹提取工具</summary>
307+
308+
命令行一键体验
309+
212310
```shell
213-
paddlespeech tts --input "你好,欢迎使用百度飞桨深度学习框架!" --output output.wav
311+
paddlespeech vector --task spk --input zh.wav
214312
```
215-
- 语音合成的 web demo 已经集成进了 [Huggingface Spaces](https://huggingface.co/spaces). 请参考: [TTS Demo](https://huggingface.co/spaces/akhaliq/paddlespeech)
216313

217-
**文本后处理**
218-
- 标点恢复
219-
```bash
220-
paddlespeech text --task punc --input 今天的天气真不错啊你下午有空吗我想约你一起去吃饭
221-
```
314+
Python API 一键预测
222315

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 ...]
224324
```
225-
echo -e "1 欢迎光临。\n2 谢谢惠顾。" | paddlespeech tts
325+
326+
</details>
327+
328+
### 标点恢复
329+
330+
<details><summary>&emsp;一键恢复文本标点,可与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+
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
226345
```
227346

228-
**Shell管道**
229-
ASR + Punc:
347+
</details>
348+
349+
### 语音翻译
350+
351+
<details><summary>&emsp;端到端英译中语音翻译工具</summary>
352+
353+
使用预编译的kaldi相关工具,只支持在Ubuntu系统中体验
354+
355+
命令行一键体验
356+
357+
```shell
358+
paddlespeech st --input en.wav
230359
```
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+
['我 在 这栋 建筑 的 古老 门上 敲门 。']
232368
```
233369

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+
236373

237374
<a name="快速使用服务"></a>
238375
## 快速使用服务
239-
安装完成后,开发者可以通过命令行快速使用服务
376+
安装完成后,开发者可以通过命令行一键启动语音识别,语音合成,音频分类三种服务
240377

241378
**启动服务**
242379
```shell
@@ -614,6 +751,7 @@ PaddleSpeech 的 **语音合成** 主要包含三个模块:文本前端、声
614751

615752
语音合成模块最初被称为 [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) 是了解语音合成流程的一个很好的指南。
616753

754+
617755
## ⭐ 应用案例
618756
- **[PaddleBoBo](https://github.com/JiehangXie/PaddleBoBo): 使用 PaddleSpeech 的语音合成模块生成虚拟人的声音。**
619757

demos/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ This directory contains many speech applications in multiple scenarios.
1212
* speech recognition - recognize text of an audio file
1313
* speech server - Server for Speech Task, e.g. ASR,TTS,CLS
1414
* streaming asr server - receive audio stream from websocket, and recognize to transcript.
15+
* streaming tts server - receive text from http or websocket, and streaming audio data stream.
1516
* speech translation - end to end speech translation
1617
* story talker - book reader based on OCR and TTS
1718
* style_fs2 - multi style control for FastSpeech2 model

demos/README_cn.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
* 元宇宙 - 基于语音合成的 2D 增强现实。
1111
* 标点恢复 - 通常作为语音识别的文本后处理任务,为一段无标点的纯文本添加相应的标点符号。
1212
* 语音识别 - 识别一段音频中包含的语音文字。
13-
* 语音服务 - 离线语音服务,包括ASR、TTS、CLS等
14-
* 流式语音识别服务 - 流式输入语音数据流识别音频中的文字
13+
* 语音服务 - 离线语音服务,包括ASR、TTS、CLS等。
14+
* 流式语音识别服务 - 流式输入语音数据流识别音频中的文字。
15+
* 流式语音合成服务 - 根据待合成文本流式生成合成音频数据流。
1516
* 语音翻译 - 实时识别音频中的语言,并同时翻译成目标语言。
1617
* 会说话的故事书 - 基于 OCR 和语音合成的会说话的故事书。
1718
* 个性化语音合成 - 基于 FastSpeech2 模型的个性化语音合成。

demos/custom_streaming_asr/setup_docker.sh

100644100755
File mode changed.

demos/keyword_spotting/run.sh

100644100755
File mode changed.

demos/speaker_verification/run.sh

100644100755
File mode changed.

demos/speech_recognition/run.sh

100644100755
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,26 @@
11
#!/bin/bash
22

3-
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wav
3+
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/zh.wav
4+
wget -c https://paddlespeech.bj.bcebos.com/PaddleAudio/en.wav
45

56
# asr
67
paddlespeech asr --input ./zh.wav
78

89

910
# asr + punc
1011
paddlespeech asr --input ./zh.wav | paddlespeech text --task punc
12+
13+
14+
# asr help
15+
paddlespeech asr --help
16+
17+
18+
# english asr
19+
paddlespeech asr --lang en --model transformer_librispeech --input ./en.wav
20+
21+
# model stats
22+
paddlespeech stats --task asr
23+
24+
25+
# paddlespeech help
26+
paddlespeech --help

demos/speech_server/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ For service interface definition, please check:
1414
see [installation](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install.md).
1515

1616
It is recommended to use **paddlepaddle 2.3.1** or above.
17-
You can choose one way from meduim and hard to install paddlespeech.
17+
18+
You can choose one way from easy, meduim and hard to install paddlespeech.
19+
20+
**If you install in easy mode, you need to prepare the yaml file by yourself, you can refer to the yaml file in the conf directory.**
1821

1922
### 2. Prepare config File
2023
The configuration file can be found in `conf/application.yaml` .

demos/speech_server/README_cn.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
# 语音服务
44

55
## 介绍
6+
67
这个 demo 是一个启动离线语音服务和访问服务的实现。它可以通过使用 `paddlespeech_server``paddlespeech_client` 的单个命令或 python 的几行代码来实现。
78

9+
810
服务接口定义请参考:
911
- [PaddleSpeech Server RESTful API](https://github.com/PaddlePaddle/PaddleSpeech/wiki/PaddleSpeech-Server-RESTful-API)
1012

@@ -13,12 +15,17 @@
1315
请看 [安装文档](https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install.md).
1416

1517
推荐使用 **paddlepaddle 2.3.1** 或以上版本。
16-
你可以从 medium,hard 两种方式中选择一种方式安装 PaddleSpeech。
18+
19+
你可以从简单,中等,困难 几种方式中选择一种方式安装 PaddleSpeech。
20+
21+
**如果使用简单模式安装,需要自行准备 yaml 文件,可参考 conf 目录下的 yaml 文件。**
1722

1823
### 2. 准备配置文件
1924
配置文件可参见 `conf/application.yaml`
20-
其中,`engine_list`表示即将启动的服务将会包含的语音引擎,格式为 <语音任务>_<引擎类型>。
25+
其中,`engine_list` 表示即将启动的服务将会包含的语音引擎,格式为 <语音任务>_<引擎类型>。
26+
2127
目前服务集成的语音任务有: asr (语音识别)、tts (语音合成)、cls (音频分类)、vector (声纹识别)以及 text (文本处理)。
28+
2229
目前引擎类型支持两种形式:python 及 inference (Paddle Inference)
2330
**注意:** 如果在容器里可正常启动服务,但客户端访问 ip 不可达,可尝试将配置文件中 `host` 地址换成本地 ip 地址。
2431

0 commit comments

Comments
 (0)