python语音转文字-语音转文字小工具开发Python

# -*- coding: utf-8 -*-import requests

import re

import os

import timefromaip import AipSpeechfrom tkinter import *

fromtkinter 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+"是否播放")ifflag:

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 参照下面错误码ifnot isinstance(result, dict):

with open(filepath,"wb") asf:

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值