Python 音频生成器的实现示例
使用Python生成不同声音的音频
第一步先去百度AI中注册账号,在控制台中创建语音技术应用,获取AppID,APIKey,SecretKey
第二步引用
fromtkinterimport* fromtkinter.filedialogimportaskdirectory fromaipimportAipSpeech fromtkinterimportttk
第三步搭建窗体
root=Tk()
root.title('生成语音')
path=StringVar()
pathmc=StringVar()
pathnr=StringVar()
Label(root,text="保存路径:").grid(row=0,column=0)
Entry(root,textvariable=path).grid(row=0,column=1)
Button(root,text="路径选择",command=selectPath).grid(row=0,column=3)
Label(root,text="语音名称:").grid(row=2,column=0)
Entry(root,textvariable=pathmc).grid(row=2,column=1)
Label(root,text="语音内容:").grid(row=3,column=0)
Entry(root,textvariable=pathnr).grid(row=3,column=1)
Button(root,text="保存",command=Save).grid(row=4,column=0)
#下拉框
Label(root,text="声音类型:").grid(row=1,column=0)
number=StringVar()
numberChosen=ttk.Combobox(root,width=12,textvariable=number)
numberChosen['values']=('女声','男声','度逍遥','度丫丫')
numberChosen.grid(column=1,row=1)
numberChosen.current(0)
root.mainloop()
第四步创建方法
#保存地址
defselectPath():
path_=askdirectory()
path.set(path_)
print(path_)
生成音频的参数
defSave():
switch={'女声':0,
'男声':1,
'度逍遥':3,
'度丫丫':4,
}
lx=switch.get(number.get(),"0")
yuying(path.get(),pathmc.get(),pathnr.get(),lx)
#生成音频
defyuying(url,title,contain,lx):
APP_ID='XXX'#百度AI中获得
API_KEY='XXX'
SECRET_KEY='XXX'
client=AipSpeech(APP_ID,API_KEY,SECRET_KEY)
result=client.synthesis(contain,'zh',1,{
'vol':5,'per':lx,'spd':2,#per发音人选择,0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女否
})
ifnotisinstance(result,dict):
withopen(url+'\\'+title+'.mp3','wb')asf:
f.write(result)
合起来的代码就是
fromtkinterimport*
fromtkinter.filedialogimportaskdirectory
fromaipimportAipSpeech
fromtkinterimportttk
defselectPath():
path_=askdirectory()
path.set(path_)
print(path_)
defSave():
switch={'女声':0,
'男声':1,
'度逍遥':3,
'度丫丫':4,
}
lx=switch.get(number.get(),"0")
yuying(path.get(),pathmc.get(),pathnr.get(),lx)
defyuying(url,title,contain,lx):
APP_ID='XXX'#百度AI中获得
API_KEY='XXX'
SECRET_KEY='XXX'
client=AipSpeech(APP_ID,API_KEY,SECRET_KEY)
result=client.synthesis(contain,'zh',1,{
'vol':5,'per':lx,'spd':2,#per发音人选择,0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女否
})
ifnotisinstance(result,dict):
withopen(url+'\\'+title+'.mp3','wb')asf:
f.write(result)
root=Tk()
root.title('生成语音')
path=StringVar()
pathmc=StringVar()
pathnr=StringVar()
Label(root,text="保存路径:").grid(row=0,column=0)
Entry(root,textvariable=path).grid(row=0,column=1)
Button(root,text="路径选择",command=selectPath).grid(row=0,column=3)
Label(root,text="语音名称:").grid(row=2,column=0)
Entry(root,textvariable=pathmc).grid(row=2,column=1)
Label(root,text="语音内容:").grid(row=3,column=0)
Entry(root,textvariable=pathnr).grid(row=3,column=1)
Button(root,text="保存",command=Save).grid(row=4,column=0)
Label(root,text="声音类型:").grid(row=1,column=0)
number=StringVar()
numberChosen=ttk.Combobox(root,width=12,textvariable=number)
numberChosen['values']=('女声','男声','度逍遥','度丫丫')
numberChosen.grid(column=1,row=1)
numberChosen.current(0)
root.mainloop()
效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。