首页 > 编程语言 > 详细

语音转文字小工具开发Python

时间:2019-02-26 13:22:47      阅读:139      评论:0      收藏:0      [点我收藏+]
# -*- 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()

 

语音转文字小工具开发Python

原文:https://www.cnblogs.com/liangblog/p/10436258.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!