语音转文字小工具开发Python
# -*- coding: utf- -*- 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-,默认为5中语速 否
#pit String 音调,取值0-,默认为5中语调 否
#vol String 音量,取值0-,默认为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 > :
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=,pit=,vol=):
result = client.synthesis(data, 'zh', , {
'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=,anchor=W, justify=LEFT).place(x=,y=)
var_ws = Variable()
wordsize = Label(tk,width=,textvariable=var_ws,anchor=W, justify=LEFT)
var_ws.set('已输入0字')
wordsize.place(x=,y=)
#输入文字
#var_word = Variable()
word_e = Text(tk,height=)
word_e.place(x=,y=) Label(tk,text='选择发音(0女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫)').place(x=,y=)
var_per = Variable()
e = Entry(tk, textvariable=var_per,width=)
var_per.set()
e.place(x=,y=)
Label(tk,text='输入文件路径:').place(x=,y=)
var_path = Variable()
e = Entry(tk, textvariable=var_path,width=)
var_path.set('audio.mp3')
e.place(x=,y=)
Label(tk,text='输入语速0-9:').place(x=,y=)
var_spd = Variable()
e = Entry(tk, textvariable=var_spd)
var_spd.set()
e.place(x=,y=)
Label(tk,text='输入音调0-9:').place(x=,y=)
var_pit = Variable()
e = Entry(tk, textvariable=var_pit)
var_pit.set()
e.place(x=,y=)
Label(tk,text='输入音量0-15:').place(x=,y=)
var_vol = Variable()
e = Entry(tk, textvariable=var_vol)
var_vol.set()
e.place(x=,y=)
Button(tk, text="转语音", command=wordToFileB).place(x=,y=)
Button(tk, text="播语音", command=playFileB).place(x=,y=)
tk.mainloop()
语音转文字小工具开发Python的更多相关文章
- WordPress小工具开发教程(网站公告)
WordPress小工具开发教程(网站公告) BY TIANQIXIN · 2012 年 12 月 26 日 wordpress主题小工具,可以自由拖动到侧边栏,并在前台实现相应功能!一般自带的小 ...
- 利用ncurses库开发终端工具箱(1)—— ToDoList小工具开发
准备工作 腾讯云服务器(Ubuntu),C++编程语言 由于想输出界面中包含中文,所以安装库 libncursesw5,依次输入下面三行命令 sudo apt-get install libncurs ...
- C# 小工具开发--DeBugHttp
随着RESTful的流行,前后端分离,我们后端开发人员在开发过程中多http相关方法进行测试.这就是这个小工具的初衷. 代码地址:https://github.com/gdoujkzz/DebugHt ...
- Windows 桌面边栏小工具开发入门
准备为网站做一个桌面通知功能的工具,现在网上一般是html5+js的比较多.虽然html5+js现在是web的开发主流,但是我们应用一般是windows系统.并且应使用中,需要打开谷歌或其 ...
- mfc小工具开发之定时闹钟之---功能介绍
使用背景: 之前在xp上用过飞雪日历,感觉挺好用的,还有在音频上的兴趣,促使了我也要自己做一个简单的定时闹钟. 之前开发过图片格式的小工具,没来的急分享,后期整理后,一块奉上,写这篇介绍的时候已近完成 ...
- 【原】得心应手小工具开发——IE代理快速切换工具
一.引入 因为公司里上外网要经常换IE代理地址,每次切换地址都要进到Internet Options里去设置一番,经常切换的话很是麻烦,由于用了点时间作个小工具来方便自己. 二.实现思路 其实思路很简 ...
- mfc小工具开发之定时闹钟之---二十四小时时区和时间段
1.凌晨0:00-6:00时显示凌晨,上午6:00-12:00显示上午,中午12:00-14:00显示中午,下午14:00-显示下午,晚上18:00-24:00显示晚上 2. 早上:6-8:上午8-1 ...
- 自动读取虚拟币ETC行情并语音提醒的小工具(mac OSX)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...
- mfc小工具开发之定时闹钟之---时间获取和音频播放
1.这里的音频文件是指*.wav格式的音频,参考了飞雪的音频文件,版本号: 飞雪桌面日历 v2.84.1025 绿色版 http://www.piaodown.com/down/soft/18512. ...
随机推荐
- abp CrudAppService 自定义分页、排序
public class GetAllTasksInput : PagedAndSortedResultRequestDto { public TaskState? State { get; set; ...
- Windows 环境下分布式跨域Session共享(转)
出处:http://www.cnblogs.com/stangray/p/3328092.html 为什么还是那句话,在网上找了N篇Session共享,但真正可以直接解决问题的还是没有找到. 一.以下 ...
- Gym 101201J Shopping (线段树+取模)
题意:给定 n 个物品,然后有 m 个人买东西,他们有 x 元钱,然后从 l - r 这个区间内买东西,对于每个物品都尽可能多的买,问你最少剩下多少钱. 析:对于物品,尽可能多的买的意思就是对这个物品 ...
- input中的disabled、readonly和hidden
最近开发项目的时候,遇到一个问题,就是我希望某个input中的值不能被修改,刚开始的时候,我想到的是disabled属性!但是,发现表单提交后,值无法传递过来! 解决方法: 可以设置其readonly ...
- swift的可选值(optional)
苹果那文档写了一大堆也没有好好的写一下可选值(optional)这个东西.就是在有一个“Optional Chaining”的章节,但是也不是很充分的说明.最后找了半天在“the basics”里墨迹 ...
- REQUEST的TRACE文件
--REQUEST的TRACE文件 SELECT 'Trace Name: ' || DEST.VALUE || '/' || LOWER (DBNM.VAL ...
- Android-SqliteSQL语句大全
SqliteSQL语句大全 创表语句: create table student_table(_id integer primary key autoincrement, name text, age ...
- selenium 元素可以定位到,但是无法点击问题
报错1: selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (82, ...
- 基于微软XAML技术的前端开发方法
使用XAML技术的平台目前包括WPF,Silverlight,Windows8等平台,未来的Windows10统一Windows App也使用XAML技术. 前端开发指通过可视化集成开发环境进行用户界 ...
- php 5.6 与之前版本不兼容中的数组属性定义辨析
在php5.6官方文档的不兼容页(http://php.net/manual/zh/migration56.incompatible.php)中提到了几个与以前版本不兼容的情况,其中提到了为类定义数组 ...