geekdoc-python-zh/docs/pythonlibrary/python-test-to-speech-makin...

2.9 KiB
Raw Permalink Blame History

Python 文本到语音转换:让你的电脑说话

原文:https://www.blog.pythonlibrary.org/2010/04/02/python-test-to-speech-making-your-pc-talk/

在我被目前的工作录用后不久,我的老板发给我一个关于 Python 的脚本(我想是基于这篇文章)和一个叫做 pyTTS 的文本到语音转换模块。这是在 Python 2.5 发布之后。无论如何,它基本上是 win32com 模块的一个很好的包装器,可以与微软语音 API (SAPI)通信。

我不会详细介绍 pyTTS因为我上面链接的那篇文章已经介绍过了但是我会给你一个快速的介绍。如果你去作者的网站你会发现他已经转移到屏幕阅读技术,并创建了一个名为 Clique 的程序。我不确定这是不是用 Python 写的。我在网站上寻找可以下载该软件的地方,最终找到了这个:【http://sourceforge.net/projects/uncassist/files/

据我所知,他只正式支持 Python 2.3-2.5。然而,由于 pyTTS 基本上只是包装了对 SAPI 的 win32com 调用,并且 PyWin32 模块支持 Python 2.x-3.x所以我认为让 pyTTS 与新版本一起工作是相当容易的。

注意:你将需要微软 SAPI 5.1 可再发行版额外 MS voicesPyWin32

让我们快速看一下如何使用本模块:


import pyTTS
tts = pyTTS.Create()
tts.SetVoiceByName('MSSam')
tts.Speak("Hello, fellow Python programmer")

你不必把声音设置成我认为的默认声音但这样做很有趣。Speak 方法接受各种标志作为它的第二个参数。一个例子是 pyTTS.tts_async它将说话置于异步模式。你也可以通过这样做来改变音量:tts。体积= 50。您可以选择 0-100%之间的任何值。

如果你看这篇文章,它会教你如何让 pyTTS 念出你喂它的单词。

下面是您如何使用 PyWin32 完成上面的大部分示例:


from win32com.client import constants
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice", constants.SVSFlagsAsync)
speaker.Speak("Hello, fellow Python programmer")

在研究本文时,我注意到 pyTTS 背后的开发人员还开发了一个跨平台的文本到语音转换模块,名为 pyttsx 。我没有用过,但是我鼓励你试一试。其他值得一看的模块有 pySpeech 和这个让 Python 识别语音的酷配方:【http://www.surguy.net/articles/speechrecognition.xml】T4

好吧,这更多的是对 Python 中酷的语音相关模块的调查,而不是对代码的调查。不过,我希望这将证明有助于你的努力。