【NLP】用python实现文本转语音处理
一、说明
介绍一款python调用库,离线软件包pyttsx3 API,它能够将文字转化成语音文件。Python 中有多种 API 可用于将文本转换为语音。pyttsx3 是一个非常易于使用的工具,可将输入的文本转换为音频。与其它类似的库不同,它可以离线工作,并且与 Python 2 和 3 兼容。
二、环境安装
安装 pyttsx3 API,请打开终端并写入:
pip install pyttsx3
该库依赖于 win32,因此我们在执行程序时可能会出现错误。为了避免这种情况,只需在您的环境中安装 pypiwin32 即可。
pip install pypiwin32
三、pyttsx3 中重要函数
一些重要函数包括:
- pyttsx3.init([driverName : string, debug : bool]) – 获取对将使用给定驱动程序的引擎实例的引用。如果请求的驱动程序已被另一个引擎实例使用,则返回该引擎。否则,将创建一个新引擎。
- getProperty(name : string) – 获取引擎属性的当前值。
- setProperty(name, value) – 将命令排队以设置引擎属性。新的属性值会影响此命令之后排队的所有话语。
- say(text : unicode, name : string) – 将命令排队以说出话语。语音根据队列中该命令之前设置的属性输出。
- runAndWait() – 处理所有当前排队的命令时发生阻塞。适当地调用引擎通知的回调。当在此调用之前排队的所有命令都从队列中清空时返回。
四、文本转语音程序示范
现在我们已经准备好编写一个将文本转换为语音的示例程序。
# Python program to show
# how to convert text to speech
import pyttsx3 # Initialize the converter
converter = pyttsx3.init()
# Set properties before adding
# Things to say
# Sets speed percent # Can be more than 100
converter.setProperty('rate', 150)
# Set volume 0-1
converter.setProperty('volume', 0.7)
# Queue the entered text
# There will be a pause between
# each one like a pause in
# a sentenceconverter.say("Hello GeeksforGeeks")
converter.say("I'm also a geek") # Empties the say() queue
# Program will not continue
# until all speech is done talkingconverter.runAndWait()
输出:
上述程序的输出将是一个声音,说“Hello GeeksforGeeks”和“I'm also a geek”。
五、变语速处理
我们将设置发动机的速率和音量。设置讲话的速率和音量:
rate = engine.getProperty('rate')engine.setProperty('rate', rate-100)
默认情况下,速率是200,所以我们将其降低到100。速率是说话速率,200对我们来说很高。所以我们降低了它。
速率简单来说就是说话者说出文本的速度。设置速率后,我们将通过首先获取音量属性然后设置它来更改或设置音量。
volume = engine.getProperty('volume')engine.setProperty('volume', volume+0.50)
默认音量为 1,即 100%,我们通过将 0.50 添加到从读取音量属性接收到的值,将其增加到 150%。
现在我们完成了这两个属性的设置,我们将调用 say(),语音现在将具有我们的参数,即 1x 速度和 1.50 音量。
engine.say("Hello, This is the test for the pyttsx3")
engine.runAndWait()
现在这个 runAndWait 对我们来说很重要。我们想要运行这个引擎,并继续运行,直到它完成所传递文本的 TTS。
六、改变声音
假设您想将生成的声音从男性更改为女性。你怎样做呢?让我们来看看。
您会注意到,当您运行上述代码来实现文本到语音转换时,响应的声音是男性声音。要更改语音,您可以通过从引擎获取语音属性来获取可用语音列表,并且您可以根据系统中可用的语音更改语音。
要获取声音列表,请编写以下代码。
|
Output:
要更改语音,请使用 setProperty() 方法设置语音。上面找到的 Voice Id 用于设置语音。
下面是变声的实现。
|
现在,您可以根据需要在声音之间切换。您可以尝试运行 for 循环来将不同的语句分配给不同的声音。运行代码并享受结果。
【NLP】用python实现文本转语音处理相关推荐
- 【NLP】Python中文文本聚类
1. 准备需要进行聚类的文本,这里选取了10篇微博. import os path = 'E:/work/@@@@/开发事宜/大数据平台/5. 标签设计/文本测试数据/微博/' titles = [] ...
- 【NLP】GitHub 上有哪些有趣的关于 NLP 的Python项目?
知乎上有人提问:GitHub 上有哪些有趣的关于 NLP 的Python项目? 先来说说什么是NLP? 自然语言处理(NLP)的重点是使计算机能够理解和处理人类语言.计算机擅长处理结构化数据,如电子表 ...
- 如何用python读取文本中指定行的内容
如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...
- 干货 | 请收下这份2018学习清单:150个最好的机器学习,NLP和Python教程
本文英文出处:Robbie Allen 翻译/雷锋网字幕组 吴楚 校对/ 雷锋网 田晋阳 机器学习的发展可以追溯到1959年,有着丰富的历史.这个领域也正在以前所未有的速度进化.在之前的一篇文章中,我 ...
- [硬货]|如何利用深度学习写诗歌(使用Python进行文本生成)
翻译:李雪冬 前 言 从短篇小说到写5万字的小说,机器不断涌现出前所未有的词汇.在web上有大量的例子可供开发人员使用机器学习来编写文本,呈现的效果有荒谬的也有令人叹为观止的. 由于自然语言处理( ...
- 【NLP】Python NLTK 走进大秦帝国
Python NLTK 走进大秦帝国 作者:白宁超 2016年10月17日18:54:10 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公 ...
- python 文本分析_使用Python进行文本分析–书评
python 文本分析 This is a book review of Text Analytics with Python: A Practical Real-World Approach to ...
- 教你如何用Python实现文本摘要模型(附教程)
翻译 | 和中华 校对 | 申利彬 来源 | 数据派THU(ID:DatapiTHU) 本文介绍了如何利用seq2seq来建立一个文本摘要模型,以及其中的注意力机制.并利用Keras搭建编写了一个完整 ...
- NLP(05)_中文文本基本任务与处理
中文文本基本任务与处理 本文所用资料链接: https://pan.baidu.com/s/1KC1ya38fml1mlXYGBF0mIw 提取码: r76u 1.分词 对于中文和日文这样的特殊亚洲语 ...
最新文章
- python应该怎么自学-新手该如何学python怎么学好python?
- edittext怎么输入默认内容覆盖_Linux Shell 输入与输出重定向
- GIMP - GNU 图像处理程序 用户手册
- leetcode 18 --- 4sum
- ASP.NET 2.0 调试的一些问题
- Pyinstaller使用教程
- 在app上查看开发代码
- oracle定时任务在哪,oracle定时任务
- 牛客网 - 编程初学者入门训练 - 分支控制(BC50~BC77)
- 2017届腾讯校园招聘笔试——最后一道编程题
- (待优化)python入门
- 如何在Jsp页面加载时候就能执行某个方法
- 基于服务器部署的OCR在线识别应用
- WPS表格取消隐藏行不管用?
- 2019年12月7日周总结
- 腾讯云服务器带宽按使用流量计费规则(通俗易懂)
- 计算机毕设结束语致谢,毕业设计结束语和致谢
- CapstoneCS5262设计DP转HDMI4K60Hz+VGA1080P转换电路|DP to hdmi+vga转换器方案设计方法|CS5262Demoboard参考电路
- 基于MIPI的高性能成像系统
- 淘宝助理导出CSV文件特殊字段详解
热门文章
- Alternate Realities大赛作品引发的思考(一)——用通俗的语言解释shader的渲染过程
- 基于Ubuntu系统的tensorflow安卓官方demo移植(19年7月)
- 云原生热门话题|什么是可观测性-Observability
- pwm 正弦波_正弦波滤波器的原理及应用,LC滤波器与LCL滤波器的区别?
- BugkuCTF web game1
- uniapp 中 editor的使用
- windows 下编译64位的 Boost 1. 61. 0
- 简析:SMT贴片加工的流程有哪些?
- edis面试刁难大全
- 【python】抛出异常