文本到语音模型是将给定文本转换为语音的小型应用程序或漫游器。
我们用于文本到语音转换的模块:pyttsx3
pyttsx3是Python中的文本到语音转换库。这是非常容易使用的工具,可以将输入的文本转换为语音。
下载模块:
pip install pyttsx3 (In your terminal or command prompt)
如果您使用的是Pycharm用户:转到项目解释器并安装模块。
我们将在此模型中使用的各种功能是:
engine=pyttsx3.init():init函数是主要功能,我们必须每次都使用此功能。该函数初始化连接并创建引擎,我们可以在上创建的引擎上执行所有操作。init() 功能
engine.say(text):此功能会将文本转换为语音(文本是用户的输入)
engine.runAndWait():此功能将使语音在系统中可听见,如果您不编写此命令,则语音将对您听不见。
engine.setProperty():此方法设置模型的不同属性。
engine.getProperty():此方法用于通过此功能获取详细信息。
语音:如果我们需要模型的语音和上升,我们可以借助语音方法获得。
语法:
voice=engine.getProperty("voices") print("voice")
输出:
[<pyttsx3.voice.Voice object at 0x7f1656128b70>, <pyttsx3.voice.Voice object at 0x7f165609c978>, <pyttsx3.voice.Voice object at 0x7f165609ca20>, <pyttsx3.voice.Voice object at 0x7f1655bf9f60>, <pyttsx3.voice.Voice object at 0x7f16559c6ac8>, <pyttsx3.voice.Voice object at 0x7f16559d7b70>, <pyttsx3.voice.Voice object at 0x7f16559d7c18>, <pyttsx3.voice.Voice object at 0x7f16559d7cc0>, <pyttsx3.voice.Voice object at 0x7f16559d7d68>, <pyttsx3.voice.Voice object at 0x7f16559d7e10>, <pyttsx3.voice.Voice object at 0x7f16559d7eb8>, <pyttsx3.voice.Voice object at 0x7f16559d7f60>, <pyttsx3.voice.Voice object at 0x7f16559d7f98>, <pyttsx3.voice.Voice object at 0x7f16559d7fd0>, <pyttsx3.voice.Voice object at 0x7f1650761048>, <pyttsx3.voice.Voice object at 0x7f1650761080>, <pyttsx3.voice.Voice object at 0x7f16507610b8>, <pyttsx3.voice.Voice object at 0x7f16507610f0>, <pyttsx3.voice.Voice object at 0x7f1650761128>, <pyttsx3.voice.Voice object at 0x7f16507611d0>, <pyttsx3.voice.Voice object at 0x7f1650761208>, <pyttsx3.voice.Voice object at 0x7f1650761240>, <pyttsx3.voice.Voice object at 0x7f16507612e8>, <pyttsx3.voice.Voice object at 0x7f1650761320>, <pyttsx3.voice.Voice object at 0x7f16507613c8>, <pyttsx3.voice.Voice object at 0x7f1650761400>, <pyttsx3.voice.Voice object at 0x7f16507614a8>, <pyttsx3.voice.Voice object at 0x7f16507614e0>, <pyttsx3.voice.Voice object at 0x7f1650761518>, <pyttsx3.voice.Voice object at 0x7f16507615c0>, <pyttsx3.voice.Voice object at 0x7f16507615f8>, <pyttsx3.voice.Voice object at 0x7f1650761630>, <pyttsx3.voice.Voice object at 0x7f1650761668>, <pyttsx3.voice.Voice object at 0x7f16507616a0>, <pyttsx3.voice.Voice object at 0x7f16507616d8>, <pyttsx3.voice.Voice object at 0x7f1650761710>, <pyttsx3.voice.Voice object at 0x7f16507617b8>, <pyttsx3.voice.Voice object at 0x7f1650761860>, <pyttsx3.voice.Voice object at 0x7f1650761898>, <pyttsx3.voice.Voice object at 0x7f1650761940>, <pyttsx3.voice.Voice object at 0x7f16507619e8>, <pyttsx3.voice.Voice object at 0x7f1650761a90>, <pyttsx3.voice.Voice object at 0x7f1650761ac8>, <pyttsx3.voice.Voice object at 0x7f1650761b00>, <pyttsx3.voice.Voice object at 0x7f1650761ba8>, <pyttsx3.voice.Voice object at 0x7f1650761be0>, <pyttsx3.voice.Voice object at 0x7f1650761c18>, <pyttsx3.voice.Voice object at 0x7f1650761cc0>, <pyttsx3.voice.Voice object at 0x7f1650761d68>, <pyttsx3.voice.Voice object at 0x7f1650761e10>, <pyttsx3.voice.Voice object at 0x7f1650761e48>, <pyttsx3.voice.Voice object at 0x7f1650761ef0>, <pyttsx3.voice.Voice object at 0x7f1650761f98>, <pyttsx3.voice.Voice object at 0x7f1650765080>, <pyttsx3.voice.Voice object at 0x7f16507650b8>, <pyttsx3.voice.Voice object at 0x7f16507650f0>, <pyttsx3.voice.Voice object at 0x7f1650765198>, <pyttsx3.voice.Voice object at 0x7f1650765240>, <pyttsx3.voice.Voice object at 0x7f1650765278>, <pyttsx3.voice.Voice object at 0x7f1650765320>, <pyttsx3.voice.Voice object at 0x7f16507653c8>, <pyttsx3.voice.Voice object at 0x7f1650765400>, <pyttsx3.voice.Voice object at 0x7f16507654a8>, <pyttsx3.voice.Voice object at 0x7f1650765550>, <pyttsx3.voice.Voice object at 0x7f16507655f8>, <pyttsx3.voice.Voice object at 0x7f1650765630>, <pyttsx3.voice.Voice object at 0x7f1650765668>, <pyttsx3.voice.Voice object at 0x7f16507656a0>, <pyttsx3.voice.Voice object at 0x7f16507656d8>]
这是各种声音的列表,现在,如果您想知道该列表中有哪种口音,那么我们可以在以下代码的帮助下进行访问:
for i in voice: print(i.id)
因此,各种上升是:
['afrikaans', 'aragonese', 'bulgarian', 'bosnian', 'catalan', 'czech', 'welsh', 'danish', 'german', 'greek', 'default', 'english', 'en-scottish', 'english-north', 'english_rp', 'english_wmids', 'english-us', 'en-westindies', 'esperanto', 'spanish', 'spanish-latin-am', 'estonian', 'persian', 'persian-pinglish', 'finnish', 'french-Belgium', 'french', 'irish-gaeilge', 'greek-ancient', 'hindi', 'croatian', 'hungarian', 'armenian', 'armenian-west', 'indonesian', 'icelandic', 'italian', 'lojban', 'georgian', 'kannada', 'kurdish', 'latin', 'lingua_franca_nova', 'lithuanian', 'latvian', 'macedonian', 'malayalam', 'malay', 'nepali', 'dutch', 'norwegian', 'punjabi', 'polish', 'brazil', 'portugal', 'romanian', 'russian', 'slovak', 'albanian', 'serbian', 'swedish', 'swahili-test', 'tamil', 'turkish', 'vietnam', 'vietnam_hue', 'vietnam_sgn', 'Mandarin', 'cantonese']
现在,如果我要设置上升,那么我会这样做:
engine.setProperty("voice",voice[15].id)
这意味着第15次上升。
现在,如果我们要设置讲话的速度:
engine.setProperty("rate",<The speed you want>)
程序:
# 导入包 import pyttsx3 engine=pyttsx3.init() text=input("输入要转换为语音的文本") s=engine.getProperty("voices") engine.setProperty("voice",s[0].id) engine.setProperty("rate",150) engine.say(text)engine.runAndWait()
注意:在.say()和.runAndWait()之前执行所有setProperty和getProperty操作,否则它将不会显示您想要的结果。
错误:
你们中的许多人可能会出错,或者有时语音听不到。
对于Linux用户:https://github.com/nateshmbhat/pyttsx3/issues/41,https://stackoverflow.com/questions/54243316/how-to-fix-pyttsx3-when-it-isnt-working
对于Windows用户:https://github.com/nateshmbhat/pyttsx3/issues/29