【四旋翼飞行器】76小时吃透四轴算法!史上最强软硬结合实战项目,👉戳此立抢👈

基于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编写一个高效搜索代码工具

用python编写一个高效搜索代码工具大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件。今天介绍用pytho...
发表于 01-16 15:24 58次 阅读
用python编写一个高效搜索代码工具

python教程之如何使用python写一个简单的程序

程序设计是用精确的语言告诉计算机该做什么,要精确到最细节处。计算机只会做很简单的事情,只能刻板地执行....
发表于 01-16 11:43 8次 阅读
python教程之如何使用python写一个简单的程序

北大开源了一个中文分词工具包,名为——PKUSeg

多领域分词:不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。....
的头像 电子发烧友网工程师 发表于 01-16 10:29 161次 阅读
北大开源了一个中文分词工具包,名为——PKUSeg

Python基础教程之Python快速入门课件资料免费下载

本文档的主要内容详细介绍的是Python基础教程之Python快速入门课件资料免费下载主要内容包括了....
发表于 01-15 17:17 19次 阅读
Python基础教程之Python快速入门课件资料免费下载

Python再一次赢得了“年度编程语言”的称号!

在 2018 年期间,号称集 Python、C、R、Ruby 等语言所长的动态编程语言 Julia ....
的头像 电子发烧友网工程师 发表于 01-15 10:24 463次 阅读
Python再一次赢得了“年度编程语言”的称号!

你知道13种编程语言的名称和来历吗

可能程序员们都认为编写代码时给变量取名是件烦人的事,不过他们还需要给另外一个东西取名,那就是新的编程....
发表于 01-14 17:20 34次 阅读
你知道13种编程语言的名称和来历吗

转行数据分析的一些经验和学习方法

如果你已经了解了Python编程的基础用法想要继续深入学习Pyhon,那么博主推荐你去看:廖学峰Py....
的头像 人工智能爱好者社区 发表于 01-14 15:25 119次 阅读
转行数据分析的一些经验和学习方法

使用Python编程时的要注意那10个事项

在Python里,一个表达式中的名字在它被赋值之前是没法使用的。这是有意而为的:这样能避免一些输入失....
的头像 玩转单片机 发表于 01-13 09:05 202次 阅读
使用Python编程时的要注意那10个事项

Python在开发实时嵌入式系统中的作用

在过去的几年里,Python已经成为一种热门的程序语言。以著名的Monty Python喜剧小组命名,该语言是面向对象和解释。该属性导...
发表于 01-11 18:22 74次 阅读
Python在开发实时嵌入式系统中的作用

如何写一个会讲笑话的Python程序

笑话从哪里来?自己写肯定是不现实的。在这个“云”的时代,各种云都有,自然是不缺开放API的。下面写一....
的头像 马哥Linux运维 发表于 01-11 16:47 355次 阅读
如何写一个会讲笑话的Python程序

Python图像处理库Pillow入门教程和代码资料免费下载

Pillow 是Python 里的图像处理库(PIL:Python Image Library),提....
发表于 01-11 16:20 36次 阅读
Python图像处理库Pillow入门教程和代码资料免费下载

Python成为2018年度编程语言,理由如下

2018 年,Python 语言上升了 3.62% ,其次是 Visual Basic .NET(+....
的头像 电子发烧友网工程师 发表于 01-10 15:32 273次 阅读
Python成为2018年度编程语言,理由如下

API-Shop-OCR-营业执照识别API接口Python调用示例代码说明

本文档的主要内容详细介绍的是API-Shop-OCR-营业执照识别API接口Python调用示例代码....
发表于 01-10 11:48 30次 阅读
API-Shop-OCR-营业执照识别API接口Python调用示例代码说明

K3Cloud的python开发实例资料说明

本文档的主要内容详细介绍的是K3Cloud的python开发实例程序资料免费下载。
发表于 01-10 11:48 29次 阅读
K3Cloud的python开发实例资料说明

虚拟币API接口的Python调用示例代码资料免费下载

虚拟币大全 涵盖比特币、以太坊等热门虚拟货币与最新发行的虚拟货币,包括币种名称、市值、24小时交易....
发表于 01-10 10:37 27次 阅读
虚拟币API接口的Python调用示例代码资料免费下载

如何用robots.txt快速抓取网站

在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的robots.txt文件,有时会给你....
的头像 电子发烧友网工程师 发表于 01-10 09:08 159次 阅读
如何用robots.txt快速抓取网站

面对人工智能这个大潮 码农应该作何反应呢

去年以来,相信很多码农,包括我本人在内,每天不下十次看到听到“人工智能”。新闻在报、科技媒体也都被它....
的头像 电子发烧友网工程师 发表于 01-10 09:00 1084次 阅读
面对人工智能这个大潮 码农应该作何反应呢

使用labview调用python语言,创建一个随机数生成小程序

1.labview只是调用功能,主要功能是python代码。   python具有强大的功能,可以弥补labview的短板。 2.labview需要安...
发表于 01-09 20:48 98次 阅读
使用labview调用python语言,创建一个随机数生成小程序

【PYNQ-Z2试用体验】1.适用项目,计划方案以及目标----写在开发板到手之前。

感谢论坛,很荣幸让我有机会试用 Pynq-z2 这块板子。 申请的原因是之前的Pynq-z1坏掉了,找了硬件的朋友去修。 之前已经在z1...
发表于 01-09 16:04 137次 阅读
【PYNQ-Z2试用体验】1.适用项目,计划方案以及目标----写在开发板到手之前。

Agilent 34401A读数存储器问题

嗨,大家好!! 我需要使用Agilent 34401A通过测量电阻连续测量(0.01秒),同时直流电压源施加0到20伏的电压斜坡,Im使用G...
发表于 01-09 15:11 22次 阅读
Agilent 34401A读数存储器问题

MicroPython技术及应用定义

    MicroPython极精简高效的实现了Python3语言,包含Python标准库的一小部分,在单片机和受限环境中运行。 &n...
发表于 01-09 14:43 147次 阅读
MicroPython技术及应用定义

python调用HanLP

1.首先安装jpype 首先各种坑,jdk和python 版本位数必须一致,我用的是JPype1-py3 版本号0.5.5.2 、1.6jdk和Python3.5,win7...
发表于 01-08 16:26 82次 阅读
python调用HanLP

Python惨遭开发者嫌弃,8个理由说明Python很糟糕

”绝大多数编程语言都有某种标识来表明作用域——即函数何时开始何时结束,动作包含在一个条件语句中,变量....
的头像 电子发烧友网工程师 发表于 01-08 09:05 351次 阅读
Python惨遭开发者嫌弃,8个理由说明Python很糟糕

python如何配置虚拟环境?

python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的....
发表于 01-07 17:12 90次 阅读
python如何配置虚拟环境?

python虚拟环境迁移4大关键步骤

执行 pip freeze --all 》 requirements.txt 命 令 将安装包版本信....
发表于 01-07 17:00 78次 阅读
python虚拟环境迁移4大关键步骤

python的各种实现有何优劣

当谈到Python时,一般指的是CPython。但Python实际上是一门语言规范,只是定义了Pyt....
的头像 马哥Linux运维 发表于 01-07 15:44 285次 阅读
python的各种实现有何优劣

MicroPython教程之TPYBoard开发板加速度传感器(萝卜教育)

1、加速度传感器的使用     开发板上有一个能够检测角度和运动状态的加速度传感器(小封装小模块?)。X ,Y,...
发表于 01-07 14:37 111次 阅读
MicroPython教程之TPYBoard开发板加速度传感器(萝卜教育)

【PYNQ-Z2试用体验】玩转PYNQ系列:二、板卡上电与开发环境配置

第一部分:板卡上电 一、需要的软硬件: 硬件: PYNQ-Z2 开发板以太网线Micro USB 数据线电源(7~15V)8G以上M...
发表于 01-07 11:34 232次 阅读
【PYNQ-Z2试用体验】玩转PYNQ系列:二、板卡上电与开发环境配置

能不能用文本处理的方法,得到《三国演义》中的人物社交网络再进行分析呢?

对这个问题,我们可以用网络中的排序算法解决。PageRank就是这样的一个典型方法,它本来是搜索引擎....
的头像 电子发烧友网工程师 发表于 01-06 10:13 651次 阅读
能不能用文本处理的方法,得到《三国演义》中的人物社交网络再进行分析呢?

2018年的7大最好的Python库

AdaNet是一个轻量级的、可扩展的TensorFlow AutoML框架,用于使用AdaNet算法....
的头像 新智元 发表于 01-06 09:44 561次 阅读
2018年的7大最好的Python库

Python夺大满贯!三大编程语言榜即将全部“失守”!

有互联网创业者说:2019年可能会是过去十年里最差的一年但却是未来十年里最好的一年,真的是这样吗?“
的头像 电子发烧友网工程师 发表于 01-05 11:02 731次 阅读
Python夺大满贯!三大编程语言榜即将全部“失守”!

python基础教程之变量如何命名变量命名规范的资料说明

python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。
发表于 01-04 17:51 46次 阅读
python基础教程之变量如何命名变量命名规范的资料说明

python基础教程之如何进行静态方法和类方法详细笔记说明

本文档的主要内容详细介绍的是python基础教程之如何进行静态方法和类方法详细笔记说明资料免费下载。
发表于 01-04 17:01 39次 阅读
python基础教程之如何进行静态方法和类方法详细笔记说明

pyhanlp 共性分析与短语提取内容详解

简介 HanLP中的词语提取是基于互信息与信息熵。想要计算互信息与信息熵有限要做的是 文本分词进行共性分析。在作者的原文中...
发表于 01-04 11:04 527次 阅读
pyhanlp 共性分析与短语提取内容详解

用示波器快速捕获异常的三种方法

万事开头难!当你想用示波器来分析问题时,你一定有想过,我要如何才能把问题抓下来?当然,只有抓下来之后....
的头像 ZLG致远电子 发表于 01-04 09:26 393次 阅读
用示波器快速捕获异常的三种方法

数据处理有9大编程语言详细资料介绍

有关大数据的话题一直很火热。伴随着信息的爆炸式增长,大数据渗透到了各行各业,广泛应用于公司中,同时也....
发表于 01-03 11:46 51次 阅读
数据处理有9大编程语言详细资料介绍

如何使用Python编程一个石头剪刀布游戏的小程序

本作业是通过python的基础语句,运用条件嵌套判断以及随机数的生成,实现了与电脑进行石头剪刀布游戏....
发表于 01-03 09:42 52次 阅读
如何使用Python编程一个石头剪刀布游戏的小程序

用Python爬了爬自己的微信朋友

看来我大部分的朋友都是在广东的(不是废话吗),其中广东的朋友大部分集中在广、深、珠,第二名是在奥克兰....
的头像 机器人大讲堂 发表于 01-02 16:59 415次 阅读
用Python爬了爬自己的微信朋友

爬虫是如何实现数据的获取爬虫程序如何实现

进入大数据时代,爬虫技术越来越重要,因为它是获取数据的一个重要手段,是大数据和云计算的基础。那么,爬....
发表于 01-02 16:30 101次 阅读
爬虫是如何实现数据的获取爬虫程序如何实现

为什么选用python进行科学计算

脚本语言已经为很多科学计算器的构建提供了很多强有力的工具,因为他们提供了其他解释型语言的接口。和很多....
发表于 01-02 14:40 47次 阅读
为什么选用python进行科学计算

最红编程语言Python的入门学习方法资料概述

最近由于人工智能的大热,Python成为网红编程语言。其就业方向和就业前景是非常大的。所以一些想要转....
发表于 01-02 14:40 58次 阅读
最红编程语言Python的入门学习方法资料概述

教大家如何用Python抢火车票!

但是,所有的乡愁和感伤,最好的解药就是一张火车票。每当万事俱备,总是只欠东风,我依然是被一张 5mm....
的头像 电子发烧友网工程师 发表于 01-02 10:35 729次 阅读
教大家如何用Python抢火车票!

Python官方竟然给出了一种编码规范PEP 8

autopep8 能够将 Python 代码自动格式化为 PEP 8 风格,它使用 pycodest....
的头像 电子发烧友网工程师 发表于 01-02 10:24 368次 阅读
Python官方竟然给出了一种编码规范PEP 8

一份2018年Python开源项目Top100清单!

首先,给大家介绍一下排名 Top 1 的项目 Pipenv,这是我们去年 2 月推荐给大家的,那个时....
的头像 电子发烧友网工程师 发表于 01-02 09:56 411次 阅读
一份2018年Python开源项目Top100清单!

Python因为AI成了最受欢迎的语言?

随着计算机语言的发展,Python也跻身于语言排行的常青树。要是说Python是最目前最火爆的语言,....
的头像 独爱72H 发表于 01-01 10:50 426次 阅读
Python因为AI成了最受欢迎的语言?

这些非常好用的的Python库你知道多少

下面给大家推荐几个我用过的,并且特别好用的项目,而不是简单的贴一下awesome python。相信....
的头像 马哥Linux运维 发表于 12-31 14:41 392次 阅读
这些非常好用的的Python库你知道多少

Python五种下划线的模式和命名约定

本文介绍了Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(nam....
的头像 马哥Linux运维 发表于 12-30 16:40 428次 阅读
Python五种下划线的模式和命名约定

从RHEL 8 Beta开始不再默认系统Python版本

为了改善用户体验,从 RHEL 8 Beta 开始不再强调“系统 Python”,不再默认一个 Py....
的头像 Linux爱好者 发表于 12-30 14:23 344次 阅读
从RHEL 8 Beta开始不再默认系统Python版本

python初学者会遇到的29个操作难点

初学Python的人总会遇到这样或者那样的问题,在我学习Python的这段时间我总结了自己的29个问....
的头像 马哥Linux运维 发表于 12-28 17:08 760次 阅读
python初学者会遇到的29个操作难点

Python薪资最高的是一线城市,竟然平均月薪高达20k!

其实,我们每个人都有一个百宝袋。这个百宝袋能帮我们春节抢票早日回家,能帮我们统计业绩并自动发送邮件汇....
的头像 电子发烧友网工程师 发表于 12-28 09:24 612次 阅读
Python薪资最高的是一线城市,竟然平均月薪高达20k!

180+个Python开源项目,涉及15个主题应用

MusicBrainz Picard 可以自动识别、标记和组织音乐专辑或其他数字音频录音。Sound....
的头像 新智元 发表于 12-28 09:10 536次 阅读
180+个Python开源项目,涉及15个主题应用

python语言优缺点

本视频主要详细介绍了python语言优缺点,分别是简单、易学、免费/开源、自动内存管理、可以移植、解....
的头像 发烧友学院 发表于 12-27 16:53 449次 阅读
python语言优缺点

python语言的标识符

在python里,标识符有字母、数字、下划线组成。在python中,所有标识符可以包括英文、数字以及....
的头像 发烧友学院 发表于 12-27 16:50 390次 阅读
python语言的标识符

python为什么叫爬虫

 作为一门编程语言而言,Python是纯粹的自由软件,以简洁清晰的语法和强制使用空白符进行语句缩进的....
的头像 发烧友学院 发表于 12-27 16:46 1862次 阅读
python为什么叫爬虫

python入门书籍推荐

本视频主要详细介绍了python入门书籍推荐,分别是python入门书籍推荐、笨办法学Python、....
的头像 发烧友学院 发表于 12-27 16:42 487次 阅读
python入门书籍推荐

python语言应用领域

本视频主要详细介绍了python语言应用领域,分别是桌面软件、网络编程、爬虫开发、云计算开发、人工智....
的头像 发烧友学院 发表于 12-27 15:24 307次 阅读
python语言应用领域

Python语言的特点

本视频主要详细介绍了Python语言的特点,分别是易于学习、易于阅读、易于维护、一个广泛的标准库、互....
的头像 发烧友学院 发表于 12-26 16:19 382次 阅读
Python语言的特点

python应用场景

本视频主要详细介绍了python应用场景,分别是系统编程、用户图形接口、Internet脚本、组件集....
的头像 发烧友学院 发表于 12-26 16:15 370次 阅读
python应用场景

开发者发文表达了他觉得 Python不行的8大原因

每种语言或多或少都有自己的怪癖,但是 Python 比其它语言都多。以字符串的操作为例,在 Pyth....
的头像 电子发烧友网工程师 发表于 12-25 11:36 473次 阅读
开发者发文表达了他觉得 Python不行的8大原因

Python教程之Python中的yield关键字能做什么详细程序说明

要理解yield做了什么,就必须明白生成器(generators)为何物,而在明白生成器之前还要知道....
发表于 12-25 11:21 105次 阅读
Python教程之Python中的yield关键字能做什么详细程序说明