Python 音訊生成器的實現示例
阿新 • • 發佈:2020-01-09
使用Python生成不同聲音的音訊
第一步先去百度AI中註冊賬號,在控制檯中建立語音技術應用,獲取AppID,API Key,Secret Key
第二步 引用
from tkinter import * from tkinter.filedialog import askdirectory from aip import AipSpeech from tkinter import ttk
第三步搭建窗體
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,textvariable = pathmc).grid(row = 2,column = 1) Label(root,text = "語音內容:").grid(row = 3,textvariable = pathnr).grid(row = 3,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()
第四步 建立方法
#儲存地址 def selectPath(): path_ = askdirectory() path.set(path_) print(path_) 生成音訊的引數 def Save(): switch = {'女聲': 0,'男聲': 1,'度逍遙': 3,'度丫丫': 4,} lx=switch.get(number.get(),"0") yuying(path.get(),pathmc.get(),pathnr.get(),lx) #生成音訊 def yuying(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為情感合成-度丫丫,預設為普通女 否 }) if not isinstance(result,dict): with open(url+'\\'+title+'.mp3','wb') as f: f.write(result)
合起來的程式碼就是
from tkinter import * from tkinter.filedialog import askdirectory from aip import AipSpeech from tkinter import ttk def selectPath(): path_ = askdirectory() path.set(path_) print(path_) def Save(): switch = {'女聲': 0,lx) def yuying(url,'wb') as f: f.write(result) root = Tk() root.title('生成語音') path = StringVar() pathmc=StringVar() pathnr=StringVar() Label(root,column = 0) Label(root,row=1) numberChosen.current(0) root.mainloop()
效果圖
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。