基于Python PaddleSpeech实现语音文字处理

目录
  • 前言
  • 环境安装
  • 项目验证
    • tts语音合成
    • asr语音识别
    • 标点恢复
  • 总结

前言

这段时间一直在研究飞浆平台,最近试了试PaddleSpeech项目,试着对文本语音做处理。整体的效果个人觉着不算特别优越,只能作为简单的学习使用。

项目github地址:github仓库

环境安装

首先我们看一下项目结构以及安装文档。

需要Python3.7以上、C++环境、requirements安装等等,下面按照我的顺序说一下。

1、conda安装Python3.9虚拟环境

使用conda安装python3.9环境,命令如下。

conda create -n py39 python=3.9

2、安装Visual Studio 2019

安装地址: Microsoft C++ 生成工具 - Visual Studio

注意安装的时候需要勾选C++桌面开发。

3、安装requirements.txt

使用命令安装requiremets.txt,命令如下:

pip install -r requirements.txt -i https://pypi.douban.com/simple

这里要注意一下,paddlespeech_ctcdecoders安装失败的话无所谓,可以略掉。

4、安装paddlepaddle和paddlespeech

命令如下:

pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install paddlespeech -i https://pypi.tuna.tsinghua.edu.cn/simple

5、nltk_data下载

按照项目安装文档内的说明。

我的本地目录地址如下

项目验证

我下面分别验证一下tts、asr以及标点恢复功能。

tts语音合成

使用命令如下:

paddlespeech tts --input "南京现在很冷,下次再去夫子庙吧。" --output C:\Users\xxx\Desktop\115.wav

执行过程

(dh_partner) D:\spyder\PaddleSpeech>paddlespeech tts --input "南京现在很冷,下次再去夫子庙吧。" --output C:\Users\xxx\Desktop\115.wav
phones_dict: None
[2022-01-05 17:23:43,642] [    INFO] [log.py] [L57] - File C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4.zip md5 checking...
[2022-01-05 17:23:44,742] [    INFO] [log.py] [L57] - Use pretrained model stored in: C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4
self.phones_dict: C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4\phone_id_map.txt
[2022-01-05 17:23:44,743] [    INFO] [log.py] [L57] - C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4
[2022-01-05 17:23:44,744] [    INFO] [log.py] [L57] - C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4\default.yaml
[2022-01-05 17:23:44,744] [    INFO] [log.py] [L57] - C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4\snapshot_iter_76000.pdz
self.phones_dict: C:\Users\huyi\.paddlespeech\models\fastspeech2_csmsc-zh\fastspeech2_nosil_baker_ckpt_0.4\phone_id_map.txt
[2022-01-05 17:23:44,745] [    INFO] [log.py] [L57] - File C:\Users\huyi\.paddlespeech\models\pwgan_csmsc-zh\pwg_baker_ckpt_0.4.zip md5 checking...
[2022-01-05 17:23:44,782] [    INFO] [log.py] [L57] - Use pretrained model stored in: C:\Users\huyi\.paddlespeech\models\pwgan_csmsc-zh\pwg_baker_ckpt_0.4
[2022-01-05 17:23:44,783] [    INFO] [log.py] [L57] - C:\Users\huyi\.paddlespeech\models\pwgan_csmsc-zh\pwg_baker_ckpt_0.4
[2022-01-05 17:23:44,783] [    INFO] [log.py] [L57] - C:\Users\huyi\.paddlespeech\models\pwgan_csmsc-zh\pwg_baker_ckpt_0.4\pwg_default.yaml
[2022-01-05 17:23:44,785] [    INFO] [log.py] [L57] - C:\Users\huyi\.paddlespeech\models\pwgan_csmsc-zh\pwg_baker_ckpt_0.4\pwg_snapshot_iter_400000.pdz
vocab_size: 268
frontend done!
encoder_type is transformer
decoder_type is transformer
C:\Users\huyi\.conda\envs\dh_partner\lib\site-packages\paddle\framework\io.py:415: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' i
s deprecated since Python 3.3, and in 3.10 it will stop working
  if isinstance(obj, collections.Iterable) and not isinstance(obj, (
acoustic model done!
voc done!
Building prefix dict from the default dictionary ...
[2022-01-05 17:23:51] [DEBUG] [__init__.py:113] Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\huyi\AppData\Local\Temp\jieba.cache
[2022-01-05 17:23:51] [DEBUG] [__init__.py:132] Loading model from cache C:\Users\huyi\AppData\Local\Temp\jieba.cache
Loading model cost 0.659 seconds.
[2022-01-05 17:23:52] [DEBUG] [__init__.py:164] Loading model cost 0.659 seconds.
Prefix dict has been built successfully.
[2022-01-05 17:23:52] [DEBUG] [__init__.py:166] Prefix dict has been built successfully.
C:\Users\huyi\.conda\envs\dh_partner\lib\site-packages\paddle\fluid\dygraph\math_op_patch.py:251: UserWarning: The dtype of left and right variables are not the same, left dtype is padd
le.int64, but right dtype is paddle.int32, the right dtype will convert to paddle.int64
  warnings.warn(
[2022-01-05 17:23:58,811] [    INFO] [log.py] [L57] - Wave file has been generated: C:\Users\xxx\Desktop\115.wav

生成的音频如下

asr语音识别

我就使用了tts生成的音频进行asr识别,看看效果,命令如下:

paddlespeech asr --lang zh --input C:\Users\xxx\Desktop\115.wav

执行结果如下

可以看到最后打印的内容是没有标点的文字输出,还是比较准的。

标点恢复

就用这句话试试标点恢复的情况,命令如下:

paddlespeech text --task punc --input 南京现在很冷下次再去夫子庙吧

执行结果

看起来语义上没什么问题。

总结

我在前言中说效果不是很好的主要原因是因为速率比较慢,相比于类似阿里云提供的tts、asr接口来说,效率比较低。也可能和需要校验模型是否存在这些无关紧要的功能有关。可以考虑研究代码,自己重新封装一些服务,效果应该好的多。

到此这篇关于基于Python PaddleSpeech实现语音文字处理的文章就介绍到这了,更多相关Python PaddleSpeech语音文字处理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python3实现语音转文字(语音识别)和文字转语音(语音合成)

    话不多说,直接上代码运行截图  1.语音合成 -------> 执行: 结果: 输入要转换的内容,程序直接帮你把转换好的mp3文件输出(因为下一步–语音识别–需要.pcm格式的文件,程序自动执行格式转换,同时生成17k.pcm文件,暂时不用管,(你也可以通过修改默认参数改变文件输出的位置,名称及是否进行pcm转换 <------- 2.语音处理 ----> 方便起见, 我们直接运行语音处理程序,识别我们上一步的17k.pcm文件: What?识别居然出现了点错误,不过不用担心,博主已经调

  • python文字转语音的实例代码分析

    使用百度接口 接口地址 https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top 安装接口 pip install baidu-aip from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = Ai

  • python文字转语音实现过程解析

    这篇文章主要介绍了python文字转语音实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用百度接口 接口地址 https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top 安装接口 pip install baidu-aip from aip import AipSpeech """ 你的 APPID AK SK """ APP_ID =

  • 使用Python实现文字转语音并生成wav文件的例子

    目前手边的一些工作,需要实现声音播放功能,而且仅支持wav声音格式. 现在,一些网站上支持文字转语音功能,但是生成的都是MP3文件,这样还需要额外的软件来转成wav文件,十分麻烦. 后来,研究Python,发现Python可以很容易的实现上面的功能. 步骤如下, 1.使用百度语音实现TTS(Text To Speech),生成mp3文件; 2. 使用pydub和ffmpeg实现mp3转wav格式. 下面,先上简单的示例代码,然后对代码作简单的分析. #!/usr/bin/python -tt #

  • Python将文字转成语音并读出来的实例详解

    前言 本篇文章主要介绍,如何利用Python来实现将文字转成语音.将文字转成语音主要有两种不同的实现方法:先将文字转成语音,然后再通过读取语音实现发音.直接调用系统内置的语音引擎实现发音,后一种方法的实现主要利用第三方库. 环境 Python版本:Anaconda 4.4.10 操作系统:win10 注意:在使用第三方库的时候,不同的操作系统和Python版本代码可能有所差别. 调用api 可以调用第三方的语音合成api生成音频文件,然后再播放音频文件即可,这里我使用的是百度语音合成api. 1

  • python 利用pyttsx3文字转语音过程详解

    这篇文章主要介绍了python 利用pyttsx3文字转语音过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # -*- coding: utf-8 -*- import pyttsx3 engine = pyttsx3.init() with open("all.txt",'r',encoding='utf-8') as f: while 1: line = f.readline() print(line, end = '')

  • 基于Python PaddleSpeech实现语音文字处理

    目录 前言 环境安装 项目验证 tts语音合成 asr语音识别 标点恢复 总结 前言 这段时间一直在研究飞浆平台,最近试了试PaddleSpeech项目,试着对文本语音做处理.整体的效果个人觉着不算特别优越,只能作为简单的学习使用. 项目github地址:github仓库 环境安装 首先我们看一下项目结构以及安装文档. 需要Python3.7以上.C++环境.requirements安装等等,下面按照我的顺序说一下. 1.conda安装Python3.9虚拟环境 使用conda安装python3

  • 基于Python编写简易文字语音转换器

    话不多说上代码!源代码 from tkinter import * import pyttsx3 class Application(Frame): def __init__(self,master=None): super().__init__(master) self.master = master self.pack() self.creatWidget() # BING INPUT def creatWidget(self): self.w1 = Text(self, width=80,

  • 基于Python实现语音识别和语音转文字

    目录 前言 直接使用 获取权限 1.环境准备 2.获取权限 代码实现 1.获取access_token 2.获取转换后音频 3.配置接口参数 4.完整demo 5.执行 前言 嗨嗨,大家好呀 ~ 今天给你们分享一个有趣的东西 ~ 是一个语音识别跟语音转文字的小工具 感兴趣的朋友可以继续往下滑咯 直接使用 在1.2官网注册后拿到APISecret和APIKey, 直接复制文章2.4demo代码, 保存为online_tts.py, 在命令行执行 python online_tts.py -clie

  • 浅谈盘点5种基于Python生成的个性化语音方法

    小编在很小的时候就特别喜欢搞怪,模仿别人的声音,尤其是老头老太太模仿的那是一个出神入化. 今天小编就带大家模仿一下个性化的声音,不过不是用小编的嘴,而是用程序,看它们都是怎么被模仿出来的. 1.gtts模块 这是一款语音模块,它可以将任意文字转换为音频文件,格式为mp3.下面我们一起来看看它的用法: 一.安装并导入: pip install gtts from gtts import gTTS 二.配置gtts客户端 tts = gTTS(text=text, lang='zh-tw') tex

  • 基于Python 的语音重采样函数解析

    因为工作中会经常遇到不同采样率的声音文件的问题,特意写了一下重采样的程序. 原理就是把采样点转换到时间刻度之后再进行插值,经过测试,是没有问题的. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 17-7-21 下午2:32 # @Author : Lei.Jinggui # @Site : http://blog.csdn.net/lccever # @File : Resample.py # @Software: PyCharm

  • 基于Python实现图像文字识别OCR工具

    目录 引言 功能列表 OCR部分 界面部分 软件代码 参考链接 引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作.生活中常常会用到,比如票据.漫画.扫描件.照片的文本提取. 博主基于 PyQt + PaddleOCR 写了一个桌面端的OCR工具,用于快速实现图片中文本区域自动检测+文本自动识别. 识别效果如下图所示: 所有框选区域为OCR算法自动检测,右侧列表有每个框对应的文字内容: 点击右侧"识别结果"中的文本记录,然后点击"复制到剪贴板"即可复制该

  • Python语音识别API实现文字转语音的几种方法

    搜狗(目前好用,免费) def textToAudio_Sougou(message, filePath): # https://ai.so gou.com/doc/?url=/docs/content/tts/references/rest/ ''' curl -X POST \ -H "Content-Type: application/json" \ --data '{ "appid": "xxx", "appkey":

  • 基于Python创建语音识别控制系统

    下面附上参考文章,这篇文章是通过识别出来的文字来打开浏览器中的默认网站.python通过调用百度api实现语音识别 题目很简单,利用语音识别识别说出来的文字,根据文字的内容来控制图形移动,例如说向上,识别出文字后,画布上的图形就会向上移动.本文使用的是百度识别API(因为免费),自己做的流程图: 不多说,直接开始程序设计,首先登录百度云,创建应用 注意这里的API Key和Secret Key,要用自己的才能生效 百度语音识别有对应的文档,具体调用方法说的很清晰,如果想学习一下可以查看REST

  • 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在画布中创建一个绘图区.在绘图区上画几条线.给图像添加文字说明等.下面我们就通过实例代码来领略一下他的魅力. import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() 上图是我们通

  • python调用百度语音REST API

    本文实例为大家分享了python调用百度语音REST API的具体代码,供大家参考,具体内容如下 (百度的rest接口的部分网址发生了一定的变化,相关代码已更新) 百度通过 REST API 的方式给开发者提供一个通用的 HTTP 接口,基于该接口,开发者可以轻松的获得语音合成与语音识别能力.SDK中只提供了PHP.C和JAVA的相关样例,使用python也可以灵活的对端口进行调用,本文描述了简单使用Python调用百度语音识别服务 REST API 的简单样例. 1.语音识别与语音合成的调用

随机推荐