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 学习笔记
Dec 27 Python
利用Python实现Windows定时关机功能
Mar 21 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
python区块及区块链的开发详解
Jul 03 Python
简单了解python变量的作用域
Jul 30 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
python中的RSA加密与解密实例解析
Nov 18 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
Python常用数字处理基本操作汇总
Sep 10 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
Nov 17 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代码
2007/03/08 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
基于vue.js的分页插件详解
2017/11/27 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
python日期时间转为字符串或者格式化输出的实例
2018/05/29 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
navabi英国:设计师大码女装
2019/06/25 全球购物
怎样写留学自荐信
2013/11/11 职场文书
小学生秋游活动方案
2014/02/23 职场文书
教师党员一句话承诺
2014/03/28 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis
cypress测试本地web应用
2022/06/01 Javascript