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 logging类库使用例子
Nov 22 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
分分钟入门python语言
Mar 20 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
linux 下selenium chrome使用详解
Apr 02 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 array_push 数组函数
2009/12/26 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
Javascript 中介者模式实例
2009/12/16 Javascript
js tab效果的实现代码
2009/12/26 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
javascript回调函数详解
2018/02/06 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
深入浅出分析Python装饰器用法
2017/07/28 Python
python实现二叉树的遍历
2017/12/11 Python
python复合条件下的字典排序
2020/12/18 Python
煤矿机修工岗位职责
2014/02/07 职场文书
银行办公室岗位职责
2014/03/10 职场文书
人民教师求职自荐信
2014/03/12 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js