语音转文字小工具开发Python
# -*- coding: utf-8 -*- import requests import re import os import time from aip import AipSpeech from tkinter import * from tkinter import ttk import tkinter.messagebox #参数 类型 描述 是否必须 #tex String 合成的文本,使用UTF-8编码, #请注意文本长度必须小于1024字节 是 #cuid String 用户唯一标识,用来区分用户, #填写机器 MAC 地址或 IMEI 码,长度为60以内 否 #spd String 语速,取值0-9,默认为5中语速 否 #pit String 音调,取值0-9,默认为5中语调 否 #vol String 音量,取值0-15,默认为5中音量 否 #per String 发音人选择, 0为女声,1为男声, #3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女 否 def wordToFileB(): print(\'开始转文件\') data = word_e.get(\'1.0\',\'end\') per = var_per.get() filepath = var_path.get() num = len(word_e.get(\'1.0\',\'end\')) var_ws.set(\'已输入\'+str(num)+\'字\') #print(data) #print(per) #print(filepath) if num > 500: tkinter.messagebox.showwarning(\'警告\',\'请输入不超过500字\') else: wordToFile(data,per,filepath) flag = tkinter.messagebox.askokcancel(\'提示\',\'转语音成功,文件地址\'+filepath+\'是否播放\') if flag: playFile(filepath) def playFileB(): print(\'开始播放\') playFile(var_path.get()) def playFile(filepath): os.system(filepath) def wordToFile(data,per,filepath,spd=5,pit=5,vol=5): result = client.synthesis(data, \'zh\', 1, { \'vol\': vol, \'spd\':spd, \'pit\':pit, \'per\':per }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): with open(filepath, \'wb\') as f: f.write(result) tk = Tk() tk.title(\'文字转语音\') tk.geometry(\'600x400\') frame = Frame(tk) Label(tk,text=\'请输入文字:(最多输入500字)\',width=200,anchor=W, justify=LEFT).place(x=200,y=10) var_ws = Variable() wordsize = Label(tk,width=300,textvariable=var_ws,anchor=W, justify=LEFT) var_ws.set(\'已输入0字\') wordsize.place(x=365,y=10) #输入文字 #var_word = Variable() word_e = Text(tk,height=14) word_e.place(x=20,y=40) Label(tk,text=\'选择发音(0女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫)\').place(x=10,y=240) var_per = Variable() e = Entry(tk, textvariable=var_per,width=20) var_per.set(3) e.place(x=400,y=240) Label(tk,text=\'输入文件路径:\').place(x=10,y=270) var_path = Variable() e = Entry(tk, textvariable=var_path,width=50) var_path.set(\'audio.mp3\') e.place(x=100,y=270) Label(tk,text=\'输入语速0-9:\').place(x=10,y=300) var_spd = Variable() e = Entry(tk, textvariable=var_spd) var_spd.set(5) e.place(x=100,y=300) Label(tk,text=\'输入音调0-9:\').place(x=180,y=300) var_pit = Variable() e = Entry(tk, textvariable=var_pit) var_pit.set(5) e.place(x=260,y=300) Label(tk,text=\'输入音量0-15:\').place(x=310,y=300) var_vol = Variable() e = Entry(tk, textvariable=var_vol) var_vol.set(5) e.place(x=400,y=300) Button(tk, text="转语音", command=wordToFileB).place(x=200,y=330) Button(tk, text="播语音", command=playFileB).place(x=260,y=330) tk.mainloop()
版权声明:本文为liangblog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。