Python 音频生成器的实现示例


Posted in Python onDecember 24, 2019

使用Python生成不同声音的音频

第一步先去百度AI中注册账号,在控制台中创建语音技术应用,获取AppID,API Key,Secret Key

第二步 引用

from tkinter import *
from tkinter.filedialog import askdirectory
from aip import AipSpeech
from tkinter import ttk

第三步搭建窗体

root = Tk()
root.title('生成语音') 
path = StringVar()
pathmc=StringVar() 
pathnr=StringVar() 

Label(root,text = "保存路径:").grid(row = 0, column = 0)
Entry(root, textvariable = path).grid(row = 0, column = 1)
Button(root, text = "路径选择", command = selectPath).grid(row = 0, column = 3)  
Label(root,text = "语音名称:").grid(row = 2, column = 0)
Entry(root, textvariable = pathmc).grid(row = 2, column = 1)
Label(root,text = "语音内容:").grid(row = 3, column = 0)
Entry(root, textvariable = pathnr).grid(row = 3, column = 1)
Button(root, text = "保存", command = Save).grid(row = 4, column = 0)  
#下拉框
Label(root,text = "声音类型:").grid(row =1, column = 0)
number = StringVar()
 
numberChosen = ttk.Combobox(root, width=12, textvariable=number)
 
numberChosen['values'] = ('女声', '男声', '度逍遥', '度丫丫') 
 
numberChosen.grid(column=1, row=1) 
 
numberChosen.current(0) 

root.mainloop()

第四步 创建方法

#保存地址
def selectPath():
 path_ = askdirectory()
 path.set(path_)
 print(path_)
 生成音频的参数 
def Save():
   switch = {'女声': 0,       
     '男声': 1,       
     '度逍遥': 3, 
     '度丫丫': 4,  
     }

   lx=switch.get(number.get(),"0")
   yuying(path.get(),pathmc.get(),pathnr.get(),lx)
#生成音频   
def yuying(url,title,contain,lx):
  APP_ID = 'XXX'#百度AI中获得
  API_KEY = 'XXX'
  SECRET_KEY = 'XXX'
  client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
  result = client.synthesis(contain, 'zh', 1, {
  'vol': 5,'per':lx,'spd':2,# per  发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女  否 
  })
  if not isinstance(result, dict):
    with open(url+'\\'+title+'.mp3', 'wb') as f:
     f.write(result)

合起来的代码就是

from tkinter import *
from tkinter.filedialog import askdirectory
from aip import AipSpeech
from tkinter import ttk

def selectPath():
 path_ = askdirectory()
 path.set(path_)
 print(path_)
def Save():
   switch = {'女声': 0,       
     '男声': 1,       
     '度逍遥': 3, 
     '度丫丫': 4,  
     }

   lx=switch.get(number.get(),"0")
   yuying(path.get(),pathmc.get(),pathnr.get(),lx)
def yuying(url,title,contain,lx):
  APP_ID = 'XXX'#百度AI中获得
  API_KEY = 'XXX'
  SECRET_KEY = 'XXX'
  client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
  result = client.synthesis(contain, 'zh', 1, {
  'vol': 5,'per':lx,'spd':2,# per  发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女  否 
  })
  if not isinstance(result, dict):
    with open(url+'\\'+title+'.mp3', 'wb') as f:
     f.write(result) 

root = Tk()
root.title('生成语音') 
path = StringVar()
pathmc=StringVar() 
pathnr=StringVar() 

Label(root,text = "保存路径:").grid(row = 0, column = 0)
Entry(root, textvariable = path).grid(row = 0, column = 1)
Button(root, text = "路径选择", command = selectPath).grid(row = 0, column = 3)  
Label(root,text = "语音名称:").grid(row = 2, column = 0)
Entry(root, textvariable = pathmc).grid(row = 2, column = 1)
Label(root,text = "语音内容:").grid(row = 3, column = 0)
Entry(root, textvariable = pathnr).grid(row = 3, column = 1)
Button(root, text = "保存", command = Save).grid(row = 4, column = 0)  

 
Label(root,text = "声音类型:").grid(row =1, column = 0)
number = StringVar()
 
numberChosen = ttk.Combobox(root, width=12, textvariable=number)
 
numberChosen['values'] = ('女声', '男声', '度逍遥', '度丫丫') 
 
numberChosen.grid(column=1, row=1) 
 
numberChosen.current(0) 

root.mainloop()

效果图

Python 音频生成器的实现示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的print用法示例
Feb 11 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
python网络爬虫学习笔记(1)
Apr 09 Python
Pandas实现数据类型转换的一些小技巧汇总
May 07 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
Python pycharm 同时加载多个项目的方法
Jan 17 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
pip install命令安装扩展库整理
Mar 02 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 Python
基于Python和openCV实现图像的全景拼接详细步骤
Oct 05 Python
Python concurrent.futures模块使用实例
Dec 24 #Python
Python hmac模块使用实例解析
Dec 24 #Python
Python hashlib模块实例使用详解
Dec 24 #Python
Python实现使用dir获取类的方法列表
Dec 24 #Python
django数据模型on_delete, db_constraint的使用详解
Dec 24 #Python
Python中filter与lambda的结合使用详解
Dec 24 #Python
节日快乐! Python画一棵圣诞树送给你
Dec 24 #Python
You might like
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
PHP开发框架总结收藏
2008/04/24 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
php模拟post提交数据的方法
2015/02/12 PHP
基于PHP制作验证码
2016/10/12 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
Python实现带百分比的进度条
2016/06/28 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
python中time库的实例使用方法
2019/10/31 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
普天C++笔试题
2016/03/20 面试题
优秀英语专业毕业生求职信
2013/11/23 职场文书
寒假家长评语大全
2014/04/16 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python