from aip import AipSpeech
import wave,pygame
import time
import random
import os
'''
pip install baidu-aip
调用百度语音合成api将文字转换成音频文件
'''
def get_video(msg):
APP_ID = '17264707'
API_KEY = '59xxwY01u0tmS2iUkdiUz4Tt'
SECRET_KEY = 'BuDpSfWMOT3eGroftO56XRTW3tHDiMIR'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
result = client.synthesis(msg, 'zh', 1, {
'vol': 5,'per':103,'aue':6
})
file_name=str(random.randint(1,999999999))+str(int(time.time()))+".wav"
# 识别正确返回语音二进制 错误则返回dict 参照下面错误码
if not isinstance(result, dict):
with open(file_name, 'wb') as f:
f.write(result)
return file_name
else:
return None
'''
pip install wave
播放指定音频文件,例如:auid.wav
'''
def paly_mp3(file_name):
fhandle = wave.open(file_name, "rb")
params = fhandle.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
fhandle.close()
pygame.mixer.init(framerate)
pygame.mixer.music.load(file_name)
pygame.mixer.music.play()
playTime = nframes / float(framerate)
time.sleep(playTime)
pygame.mixer.music.stop()
#播放完毕之后删除指定文件
os.remove(file_name)
if __name__ == '__main__':
'''
循环将文字转换成音频文件,并播放
'''
msg_list=[
"张三呀",
"李四呀",
"王麻子呀",
"蓝胖子呀",
]
for msg in msg_list:
file_name=get_video(msg)
paly_mp3(file_name)