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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。