# -*- 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的更多相关文章

  1. WordPress小工具开发教程(网站公告)

    WordPress小工具开发教程(网站公告) BY TIANQIXIN · 2012 年 12 月 26 日   wordpress主题小工具,可以自由拖动到侧边栏,并在前台实现相应功能!一般自带的小 ...

  2. 利用ncurses库开发终端工具箱(1)—— ToDoList小工具开发

    准备工作 腾讯云服务器(Ubuntu),C++编程语言 由于想输出界面中包含中文,所以安装库 libncursesw5,依次输入下面三行命令 sudo apt-get install libncurs ...

  3. C# 小工具开发--DeBugHttp

    随着RESTful的流行,前后端分离,我们后端开发人员在开发过程中多http相关方法进行测试.这就是这个小工具的初衷. 代码地址:https://github.com/gdoujkzz/DebugHt ...

  4. Windows 桌面边栏小工具开发入门

          准备为网站做一个桌面通知功能的工具,现在网上一般是html5+js的比较多.虽然html5+js现在是web的开发主流,但是我们应用一般是windows系统.并且应使用中,需要打开谷歌或其 ...

  5. mfc小工具开发之定时闹钟之---功能介绍

    使用背景: 之前在xp上用过飞雪日历,感觉挺好用的,还有在音频上的兴趣,促使了我也要自己做一个简单的定时闹钟. 之前开发过图片格式的小工具,没来的急分享,后期整理后,一块奉上,写这篇介绍的时候已近完成 ...

  6. 【原】得心应手小工具开发——IE代理快速切换工具

    一.引入 因为公司里上外网要经常换IE代理地址,每次切换地址都要进到Internet Options里去设置一番,经常切换的话很是麻烦,由于用了点时间作个小工具来方便自己. 二.实现思路 其实思路很简 ...

  7. 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 ...

  8. 自动读取虚拟币ETC行情并语音提醒的小工具(mac OSX)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  9. mfc小工具开发之定时闹钟之---时间获取和音频播放

    1.这里的音频文件是指*.wav格式的音频,参考了飞雪的音频文件,版本号: 飞雪桌面日历 v2.84.1025 绿色版 http://www.piaodown.com/down/soft/18512. ...

随机推荐

  1. git忽略某个文件夹

    data/cache/* !data/cache/index.html !data/cache/smiOAuthToken.php

  2. 虚拟机CentOS6.5搭建samba服务器实现文件共享

    Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务.Linux用户通过配置使用Samba服务器可以实现与Windows用户的资源共享:而守护进程smbd和nmbd是Samba ...

  3. PHP(十)字符串

  4. 基于智能手机的3D地图导航

    https://www.gpsworld.com/resources/archives/ Going 3D Personal Nav and LBS To enrich user experience ...

  5. TCP的几个状态(SYN/FIN/ACK/PSH/RST)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 含义: SYN 表示建立连接, ...

  6. OA与ERP集成 可行?

    [正文] 近些年来,当谈论到企业信息化的时候,ERP都成为一个热门话题,ERP的出现似乎给企业带来了一个翻天覆地的变化,而且也成为企业实现信息化的"新宠儿".然而OA也曾经是企业信 ...

  7. Jquery 自定义插件写法(示例)

    (function ($) { $.SmsHelper = $.SmsHelper || {}; $.extend($.SmsHelper, { //插件具体实现代码 yzmnum: 60, Ajax ...

  8. RHEL7/CentOS7 Network Service开机无法启动的解决方法

    RHEL7/CentOS7安装完成并配置好所有网络相关配置后重启机器,使用systemctl --failed检查是否有失败的服务,发现在network服务启动失败,使用systemctl statu ...

  9. linux gitlab-ctl reconfigure报错问题修复 502

    Running handlers: There was an error running gitlab-ctl reconfigure: bash[migrate gitlab-rails datab ...

  10. 自定义Team Foundation Server (TFS) 与Project Professional的集成字段

    用户可以象使用Office Excel一样,使用Project Professional连接TFS,将数据下载到本地修改,并且发布到TFS服务器上,如果你习惯使用Project来计划你的项目,那么Pr ...