基于Python编写的语音播放软件

MEMS 2018-11-03 08:36 次阅读

单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定——经常出现莫名其妙的故障,容易给工作带来被动。学Python这么久不如动手写一款自己的语音广播软件,即使发生故障也可以自行排除。

1

界面设计

在开始动工之前当然要分析需求,我要的核心功能是将一段文字通知输入软件,然后将其转换为语音并播放出来。

这项功能虽然并不复杂,但也需要一个交互式的界面,所以决定使用Tkinter来实现这个功能。

第一步:建立一个窗体

设置标题、大小等要素,为了避免显示格式错乱将其设定为不可改变大小,代码如下:

基于Python编写的语音播放软件

第二步,设置一个控件

用于接受收入的文字,这里选择带滚动条的Text,代码如下:

基于Python编写的语音播放软件

第三步,提供选项

作为一款语音播放软件,最基本的语速、音调等风格设置还是要有的,这里使用Combobox控件提供固定选项,用户可以根据情况选择不同的发音、语速和语调。

基于Python编写的语音播放软件

第四步,建立功能事件的触发接口

设置三个Button控件分别用于触发“语音播放”、“文本清除”和“界面退出”功能。

基于Python编写的语音播放软件

最终界面效果如下:

基于Python编写的语音播放软件

2

语音播放

关于“清除”、“退出”等功能相对比较简单,这里重点对本次的核心功能——语音播放进行详细说明。

1).语音接口

文本转换语音推荐使用百度云的REST API 接口,登录网站http://ai.baidu.com/,依次进入控制台——语音技术页面,创建自己的语音应用(下图),其中AppID 、API Key 、Secret Key 三个参数在代码中会用到。

基于Python编写的语音播放软件

然后使用 pip install baidu-aip 安装python SDK模块,我们来看一下函数原型:


 

APP_ID = 'XXXXXX' 

API_KEY = 'XXXXXXXXXXXXX' 

SECRET_KEY = 'XXXXXXXXXXXXXXXXXXXXXX' 

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 

result  = client.synthesis(text, 'zh', 1, {'per':1, 'vol':15, 'pit':9, 'spd':5 }) 

text:需要转换的文字。

per:发音人选择, 0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声。vol:音量,取值0-15,默认为5中音量

pit:音调,取值0-9,默认为5中语调。

spd:语速,取值0-9,默认为5中语速。‘zh’和1分别为语音模式和客户端类型,该两项均为固定值,不支持修改。  

可以看到,我们需要的发音、音调、语速三种风格都可以通过修改参数来实现。

2).功能设计

解决了语音合成接口的问题,就可以结合界面设置来实现具体功能了。

首先,要将界面中的语音风格选项与语音合成函数参数一一对应起来,这是一个典型的键与值的对应关系,使用字典这种数据结构再合适不过了。

然后对于发音风格,选取了男声、女声、混合三种模式;

最后对于音调和语速,没必要设置过细的精度等级,这里分别选取了三个跨度明显的等级进行区分。

基于Python编写的语音播放软件

当“播放”按钮点击时,要从Text控件中读取文本,如果文本为空则弹出提示框要求重新输入;若文本不为空则将文本转换为音频文件并使用playsound进行播放。

基于Python编写的语音播放软件

这里有一个问题需要特别注意,那就是在软件运行过程中,生成并播放的音频文件不可删除、不可修改、不可覆盖,所以每次转换生成的音频文件名称绝对不能重复,否则在进行多次“播放”操作时,会因为新生成的音频文件无法保存而发生故障。

3

打包封装

到目前为止,这个软件的运行要依赖于本地的python开发环境,不能方便地提供给他人使用,这里推荐Pyinstaller的第三方库来对python程序进行打包,首先进入刚才的py文件所在目录,执 行以下cmd命令。其中“-w”的作用是是不显示命令窗口,tk_voice是刚才的py文件名称。

pyinstaller -w tk_voice.py 

这时,在同一目录下会生成一个dist文件夹,这里面就是打包后的程序文件了。我们运行一下其中的.exe文件,就会出现之前设计的程序界面,在文本框中输入一段测试文字:“全体人员请注意,全体人员请注意,请立即下楼集合开饭。”,点击“播放”按钮试一下效果:

插入音频————测试.mp3

最后,关于Pyinstaller的使用有几点需要注意的地方:

该方法仅适用于windows系统,而且对系统版本有比较严格的要求,比如64位系统下打包的程序无法在32位系统下运行。

如果需要打包的程序中调用了外部的一些图片或其他资源文件,则需要手动复制到打包后的文件夹内,因为对于这些文件Pyinstaller不会进行打包。

使用Pyinstaller打包如果出现中途失败的情况,可能会导致原py文件内容丢失,所以打包之前最好先进行备份。

使用import导入其他库的时候尽量有选择性,不要导入整个库,不然打包后的文件会非常庞大。

原文标题:营收15年增长30倍,“下一代”是瑞声科技的最大“功臣”

文章出处:【微信号:MEMSensor,微信公众号:MEMS】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

在Python中创建API的具体操作

Jupyter Notebook非常适合处理有关Python、R和markdown的东西。但一旦涉及....

的头像 论智 发表于 11-18 08:58 198次 阅读
在Python中创建API的具体操作

123个Python渗透测试工具你了解多少黑客资源

今天的文章来源于dloss/python-pentest-tools,本文中列举了123个Pytho....

的头像 马哥Linux运维 发表于 11-17 11:10 317次 阅读
123个Python渗透测试工具你了解多少黑客资源

python3如何取出重复3次的字符串保存为3列

本文档的主要内容详细介绍的是python3如何取出重复3次的字符串保存为3列详细资料免费下载C语言资....

发表于 11-16 16:17 19次 阅读
python3如何取出重复3次的字符串保存为3列

Python你为何这么厉害,这么嚣张?

在中国,Python相关职位的需求量依然集中在三大经济圈,特别是在北京、上海、深圳这几个城市。从行业....

的头像 澳门威尼斯人官网手机网工程师 发表于 11-16 10:54 311次 阅读
Python你为何这么厉害,这么嚣张?

笨办法学python,python语言入门

想学习python的小白可以看看哦,很经典的书籍,书名就是标题哦...

发表于 11-15 23:53 34次 阅读
笨办法学python,python语言入门

Python编码风格不可不知 没准要靠它吃饭

Python会将圆括号,中括号和花括号中的行隐式的连接起来,你可以利用这个特点.如果需要,你可以在表....

的头像 嵌入式资讯精选 发表于 11-15 16:28 240次 阅读
Python编码风格不可不知 没准要靠它吃饭

如何使用Word2vec模型进行古诗词个性化推荐的应用

古诗词是中华优秀传统文化上璀璨的明珠,两千年来,我国优秀诗人辈出,其诗作若满天繁星,内容丰富影响深远....

发表于 11-15 16:15 27次 阅读
如何使用Word2vec模型进行古诗词个性化推荐的应用

怎么用Python玩GTA5?跟着教程玩!

好了,第一步,我们如何实现读取屏幕画面?我一直在想可以做,但还真没想过怎么做。所以,Google!我....

的头像 马哥Linux运维 发表于 11-15 12:55 302次 阅读
怎么用Python玩GTA5?跟着教程玩!

大数据需要用到什么编程语言

R经常被称为是“统计人员为统计人员开发的一种语言”。如果你需要深奥的统计模型用于计算,可能会在CRA....

发表于 11-14 09:44 113次 阅读
大数据需要用到什么编程语言

街机游戏《街头霸王 3》中进行模拟来训练改进强化学习算法的工具包

实际上该工具包与模拟器本身不需要太多的交互,只需要查找和内部状态相关联的内存地址,同时用所选取的环境....

的头像 澳门威尼斯人官网手机网工程师 发表于 11-13 09:30 206次 阅读
街机游戏《街头霸王 3》中进行模拟来训练改进强化学习算法的工具包

开源工具就是你数据科学入门时所需的全部内容

如你所见,它返回一个列表,每个数字预测训练集中每个记录的武器。我们之所以看到的是数字而不是武器名称,....

的头像 澳门威尼斯人官网手机网工程师 发表于 11-12 14:15 189次 阅读
开源工具就是你数据科学入门时所需的全部内容

半路“出家”如何逆袭科班程序员?

能混到腾讯面试,我也很意外,居然没有被刷简历刷掉。我没有通过腾讯的社招平台投简历,而是在 V2EX ....

的头像 澳门威尼斯人官网手机网 发表于 11-12 11:06 628次 阅读
半路“出家”如何逆袭科班程序员?

精选10个Python开源项目

过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 10 的项目。

的头像 澳门威尼斯人官网手机网工程师 发表于 11-12 09:47 233次 阅读
精选10个Python开源项目

Python编写代码的风格规范是怎样的

分号Tip不要在行尾加分号, 也不要用分号将两条命令放在同一行.行长度Tip每行不超过80个字符例外....

的头像 人工智能 发表于 11-11 09:21 267次 阅读
Python编写代码的风格规范是怎样的

使用最新固件2.40的DMM 34410A无法读取统计结果

使用最新固件版本2.40的DMM 34410A无法读取统计结果使用python我发送流命令:已发送:'SYST:PRES'已发送:'* RST...

发表于 11-08 10:22 33次 阅读
使用最新固件2.40的DMM 34410A无法读取统计结果

分享一个官网下载下来的labview/enthought python integration toolkit

分享一个官网上用ftp一个一个下载下来的labview/enthought python integration toolkit 对于不能从官网下载或者无法联网的童鞋...

发表于 11-08 01:06 85次 阅读
分享一个官网下载下来的labview/enthought python integration toolkit

学习传感器的五大技巧

    传感器的数量在整个地球表面和人们生活周遭空间激增,提供世界各种数据讯息。这些价格亲民的传感器是物联网(IoT...

发表于 11-07 16:06 73次 阅读
学习传感器的五大技巧

python机器学习和深度学习的学习书籍资料免费下载

本文档的主要主要内容详细介绍的是python机器学习和深度学习的学习书籍资料免费下载。

发表于 11-05 16:28 65次 阅读
python机器学习和深度学习的学习书籍资料免费下载

数据科学家们常用的一种工具——Jupyter notebook,纳入天文学研究

这种工具能帮数据科学家极大地推进数据探索。notebook是交互式的,用户可以在这种环境中运行代码、....

的头像 论智 发表于 11-05 15:30 196次 阅读
数据科学家们常用的一种工具——Jupyter notebook,纳入天文学研究

给大家推荐一名网友开源的Python库

这个工具包之所以易于上手,是因为它和模拟器本身不需要太多交互,只需注意两点——一是查找你关注的内部状....

的头像 论智 发表于 11-05 15:04 299次 阅读
给大家推荐一名网友开源的Python库

Python在实时嵌入式系统中扮演的角色

而下面是来自 gooroo.io的数据,根据每条招聘启事给出的薪酬范围取了平均数:懂 Ruby,C+....

的头像 玩转单片机 发表于 11-05 11:08 577次 阅读
Python在实时嵌入式系统中扮演的角色

如何用Python编程下载和解析英文版维基百科

从自然语言处理到监督式机器学习,维基百科助力了无数的数据科学项目。 维基百科的规模之大,可称为世上....

的头像 中国人工智能学会 发表于 11-04 10:37 319次 阅读
如何用Python编程下载和解析英文版维基百科

GDAL库有什么作用GDAL学习笔记详细资料免费下载

可能你不玩GIS,不懂这个库到底有什么用,或者和python有什么关系。但是你要玩GIS,RS,你就....

发表于 11-02 17:18 36次 阅读
GDAL库有什么作用GDAL学习笔记详细资料免费下载

用Python制作编程语言的关系网络图

本文会介绍简单的网络知识,即便你没有相关背景知识也能轻松学会。今天要教大家制作一张编程语言的关系网络....

的头像 人工智能 发表于 11-02 10:29 280次 阅读
用Python制作编程语言的关系网络图

如何使用脚本编程语言详细使用资料讲解免费下载

脚本编程语言通常是解释执行(interpreted )而非编译执行(compiled)即写即运行方便....

发表于 11-01 16:49 45次 阅读
如何使用脚本编程语言详细使用资料讲解免费下载

关于KiCad电子开发应用的Wayne Stambaugh访谈

在我担任Digi-Key数字设计工具项目经理期间,我有机会与我们的许多供应商和开发人员进行互动。 最近,我有机会采访了Motion ...

发表于 11-01 15:50 155次 阅读
关于KiCad电子开发应用的Wayne Stambaugh访谈

程序员如何提高自己的等级

你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外....

发表于 11-01 09:22 40次 阅读
程序员如何提高自己的等级

patyon爬虫技术PDF课件分享

patyon爬虫技术PDF课件

发表于 10-31 16:08 110次 阅读
patyon爬虫技术PDF课件分享

新手学习Python有哪些常见的错误

学习Python的过程中发现一些常见的错误,或许大家也会 遇到,这里在此总结如下:

发表于 10-30 19:45 49次 阅读
新手学习Python有哪些常见的错误

python基础教程之Python学习入门字符串的详细程序资料说明

Python 字符串操作,如string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、....

发表于 10-30 19:13 51次 阅读
python基础教程之Python学习入门字符串的详细程序资料说明

python基础教程之Python初学者入门学习指南资料免费下载

Python,在这里不过多的做介绍,我们主要看看做为一名初学者,在刚刚起步学习Python的时候,该....

发表于 10-30 19:13 52次 阅读
python基础教程之Python初学者入门学习指南资料免费下载

ruby教程之学习ruby的实例详细资料免费下载

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Y....

发表于 10-30 18:30 32次 阅读
ruby教程之学习ruby的实例详细资料免费下载

从D435获得完整的点云但数据集不完整

使用Python代码,我们从D435捕获中获得点云,但它过滤掉了一些点(可能是那些具有NaN值的点)并导致数据集不完整。 1280x7...

发表于 10-30 11:27 85次 阅读
从D435获得完整的点云但数据集不完整

PNA-N5222A使用Python进行Power Sweep

你有一个示例Python代码来控制PNA(如N522A)在固定频率(比如5 GHz)的FET放大器DUT上进行功率扫描(比如Pin = ...

发表于 10-29 15:50 49次 阅读
PNA-N5222A使用Python进行Power Sweep

用Python做一个模拟实验,赌博为什么能赌到倾家荡产?

但是实际通货膨胀率要比官方数据(根据居民消费指数)高得多(十年前两块钱一个的肉夹馍如今已经要十块钱了....

的头像 马哥Linux运维 发表于 10-29 14:53 252次 阅读
用Python做一个模拟实验,赌博为什么能赌到倾家荡产?

机器人十大流行编程语言的介绍及机器人编程系统以及操作方法

如果您问“机器人的最佳编程语言是什么?计算机视觉程序员会给出不同于认知机器人的答案。每个人都不同意....

的头像 机器人前沿 发表于 10-28 11:46 912次 阅读
机器人十大流行编程语言的介绍及机器人编程系统以及操作方法

TensorFlow安装手册之如何利用pip安装 TensorFlow

关于 TensorFlow 安装,有很多方法可以实践。本文将为大家详细介绍如何利用 pip 安装 T....

的头像 TensorFlow 发表于 10-28 10:57 603次 阅读
TensorFlow安装手册之如何利用pip安装 TensorFlow

Google公司的面试题和详细的分解过程

作为一名Google的工程师和面试官,今天是我第二次发文分享科技公司面试建议了。这里先声明:本文仅代....

的头像 悟空智能科技 发表于 10-28 10:33 452次 阅读
Google公司的面试题和详细的分解过程

Python是否会取代C/C++成为人工智能核心算法?

互联网产品日渐饱和,移动互联网也已进入下半场,市场已经从巅峰时代逐渐进入一个相对平稳的发展阶段,互联....

的头像 张康康 发表于 10-25 19:44 637次 阅读
Python是否会取代C/C++成为人工智能核心算法?

python语言中类的特殊方法相关用法详细资料概述

本文和大家分享的主要是python语言中类的特殊方法相关用法,希望对大家有帮助。包括了:构造序列,程....

发表于 10-25 18:01 36次 阅读
python语言中类的特殊方法相关用法详细资料概述

学Python能做什么Python语言到底能做哪些事

Python是一门脚本语言,因为能将其他各种编程语言写的模块粘接在一起,也被称作胶水语言。强大的包容....

发表于 10-25 16:56 76次 阅读
学Python能做什么Python语言到底能做哪些事

如何学习Python快速学习Python的技巧详细资料概述

Python现在的运用范围非常广,所以在IT专业中热度一直在增加,并且是人工智能的第一语言,如果你想....

发表于 10-25 16:55 52次 阅读
如何学习Python快速学习Python的技巧详细资料概述

python基础教程之如何使用python进行环境搭建

Python 有 Python 2 和 Python 3 两个版本。 语法有些区别。 保险起见, 我....

发表于 10-25 16:55 58次 阅读
python基础教程之如何使用python进行环境搭建

VisaIOError:VI_ERROR_CONN_LOST连接丢失

嗨,我们正在用Python编写一个代码来控制DS0X-3024A自动进行电源轨噪声测量,并在USB中保存快照。 主要功能:设置通道参...

发表于 10-25 11:13 61次 阅读
VisaIOError:VI_ERROR_CONN_LOST连接丢失

用Python进行全面数据探索

GarageCars 和 GarageArea 也是相关性比较强的变量. 车库中存储的车的数量是由车....

的头像 人工智能 发表于 10-25 09:15 601次 阅读
用Python进行全面数据探索

Python基础教程之Python界面程序开发应用技术的详细资料概述

本文介绍了Python 下开发界面程序的基本技术情况,简要分析了各种技术的优劣,并着重探讨了其中Wx....

发表于 10-24 17:24 71次 阅读
Python基础教程之Python界面程序开发应用技术的详细资料概述

python基础教程之Python核心编程学习详细代码说明

bwpython基础教程之Python核心编程学习详细代码说明这一章蛮重要,代码都敲进去试过,请批评....

发表于 10-24 14:45 45次 阅读
python基础教程之Python核心编程学习详细代码说明

学习Python需要注意哪些问题

不管是学习还是工作,都讲求方法。随着Python的发展,有越来越多的人想要学习Python,但是其中....

发表于 10-23 16:44 34次 阅读
学习Python需要注意哪些问题

为什么Python是人工智能最好的编程语言Python有什么优势

人工智能是未来发展的一大趋势,在人工智能发展的同时也增大了Python的发展空间,都说Python是....

发表于 10-23 16:42 95次 阅读
为什么Python是人工智能最好的编程语言Python有什么优势

零基础python入门ppt资料

零基础python入门ppt资料

发表于 10-23 15:05 225次 阅读
零基础python入门ppt资料

你用Python写过最牛逼的程序/脚本是什么?

从现在开始,你再也不需要打开你的浏览器,等待加载IMDb的页面,键入电影的名字。这个脚本会帮你完成所....

的头像 马哥Linux运维 发表于 10-22 14:25 273次 阅读
你用Python写过最牛逼的程序/脚本是什么?

基于OpenCV和 Python的人脸识别实现方案

opencv 的强大之处的一个体现就是其可以对图片进行任意编辑,处理。 下面的这个函数最后一个参数指....

的头像 人工智能 发表于 10-21 10:08 512次 阅读
基于OpenCV和 Python的人脸识别实现方案

Python库的安装与卸载详细步骤

安装好python、设置好环境变量后,在python安装目录下Script文件夹内会存在pip.ex....

发表于 10-20 09:09 169次 阅读
Python库的安装与卸载详细步骤

常见的Pythonic写法汇总

Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出 Pyt....

的头像 马哥Linux运维 发表于 10-19 15:03 283次 阅读
常见的Pythonic写法汇总

RobotFramework如何使用?有什么问题及如何解决

Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关....

发表于 10-18 17:25 41次 阅读
RobotFramework如何使用?有什么问题及如何解决

TIOBE发布了10月份最新编程语言排行榜

话虽如此,但我们依然有理由相信,Go 依然是一只优质的“潜力股”,且不说它一直保持上升的趋势,在日益....

的头像 澳门威尼斯人官网手机网工程师 发表于 10-18 17:01 1391次 阅读
TIOBE发布了10月份最新编程语言排行榜

GDAL数据转换库的介绍和安装及快速开始资料免费下载

可能你不玩GIS,不懂这个库到底有什么用,或者和python有什么关系。但是你要玩GIS,RS,你就....

发表于 10-18 10:27 41次 阅读
GDAL数据转换库的介绍和安装及快速开始资料免费下载

基于NumPy创建一个可以工作的神经网络

在开始编程之前,先让我们准备一份基本的路线图。我们的目标是创建一个特定架构(层数、层大小、激活函数)....

的头像 论智 发表于 10-18 09:02 750次 阅读
基于NumPy创建一个可以工作的神经网络

详细解读Python变量类型

变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配....

的头像 马哥Linux运维 发表于 10-17 17:14 310次 阅读
详细解读Python变量类型

Python在实时嵌入式系统中扮演怎样的角色?

早年,虽然Python是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都....

的头像 嵌入式资讯精选 发表于 10-17 08:53 1078次 阅读
Python在实时嵌入式系统中扮演怎样的角色?