当前位置:   article > 正文

Python 文字转语音(TTS)_python tts

python tts

Python 文字转语音(TTS)

0.简介

下面所有的实例代码只是我在我项目中使用的代码,有其他需求可以参考官方文档。【主要是在Windows环境下】

1.pyttsx3

0.简介

可以离线使用,但在Ubuntu系统下调用espeak包——中文发声很奇怪。

目前支持的设备以及语音识别引擎:

  • nsss - Mac OS X 10.5及更高版本上的NSSpeechSynthesizer
  • sapi5 - Windows XP,Windows Vista和(未经测试)Windows 7上的SAPI5
  • espeak - 可以托管共享库的任何发行版/平台上的eSpeak(例如,Ubuntu/Fedora Linux(树莓派)

【pyttsx3官方参考文档】

1.安装

可能要安装其他依赖,如果下面这条命令安装不了,可以去查查安装方法。

python -m pip install pyttsx3
  • 1

2.实例代码

import pyttsx3
def use_pyttsx3():
    # 创建对象
    engine = pyttsx3.init()
    
    # 获取当前语音速率
    rate = engine.getProperty('rate')
    print(f'语音速率:{rate}')
    # 设置新的语音速率
    engine.setProperty('rate', 150)
    
    # 获取当前语音音量
    volume = engine.getProperty('volume')
    print(f'语音音量:{volume}')
    # 设置新的语音音量,音量最小为 0,最大为 1
    engine.setProperty('volume', 1.0)
    
    # 获取当前语音声音的详细信息  # 这里我也是找到的实例代码感觉写的很矛盾,最后发出的还是女声
    voices = engine.getProperty('voices')
    print(f'语音声音详细信息:{voices}')
    # 设置当前语音声音为女性,当前声音不能读中文
    engine.setProperty('voice', voices[1].id)
    # 设置当前语音声音为男性,当前声音可以读中文
    engine.setProperty('voice', voices[0].id)
    # 获取当前语音声音
    voice = engine.getProperty('voice')
    print(f'语音声音:{voice}')
    
    # 语音文本
    words = input('请输入要说的话:')
    # 将语音文本说出来
    a = engine.say(words)
    engine.runAndWait()
    engine.stop()

    # 保存音频
    engine.save_to_file('张三,王五,你们好,请离开!', filename='./wavfiles/go_out.wav', name='test')
    engine.runAndWait()
    
if __name__ == '__main__':
	use_pyttsx3()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

3.参考链接

【pytorch中文网-python使用pyttsx调用设备的TTS实现语音合成】

2.tts

0.简介

没啥简介。自己查查吧

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/88136
推荐阅读
相关标签