python语音合成的代码网上很多,大多也能正常使用。但也存在简单到只能发出声音、不能选择男声女声等问题,并不具备多少实用价值。下面就是我在网上并找到做了少量修改的一段语音合成的代码:
#coding=utf-8
import pyttsx3
engine = pyttsx3.init() # 必不可少
# 打开文本文件
with open('诗经1.txt') as file:
text = file.read()
# 选择声音类型
# 男性(voices[0].id)、女性(voices[1].id)
# sex = int(input('请选择声音种类,男声选0,女声选1'))
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id) #设置当前声音为“男性”,当前声音可读中文也可读英文
# engine.setProperty('voice', voices[1].id) #设置当前声音为“女性”,当前声音不可读中文
# 调整语速
# rate = int(input('请选择语速,0-500,正常约200'))
rate = engine.getProperty('rate') #获取当前音频语速,范围一般为0-200,默认值为200
engine.setProperty('rate', 200) #改变语速
# 调整声量,范围在0~1之间
volume = engine.getProperty('volume') #设置音量
engine.setProperty('volume',0.8) #范围一般为0.0~1.0 默认值为1.0
# print(