您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

一个语音播报软件还给我整付费?我自己直接用Python写了个!

5b51 2022/1/14 8:24:43 python 字数 9054 阅读 664 来源 www.jb51.cc/python

今天写的这个软件不能用于商用哦!毕竟你不是原始写出来的人! 单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定——经常

概述

今天写的这个软件不能用于商用哦!毕竟你不是原始写出来的人!

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

进群:548377875   即可获取大量的学习资料哦!

界面设计

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

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

第一步:建立一个窗体

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

第二步,设置一个控件

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

第三步,提供选项

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

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

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

最终界面效果如下:

一个语音播报软件还给我整付费?我自己直接用Python写了个!

语音播放

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

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 })

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

2).功能设计

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

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

打包封装

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

pyinstaller -w tk_voice.py

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

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

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

一个语音播报软件还给我整付费?我自己直接用Python写了个!

本文使用python写了一款语音播放软件,主要涉及Tkinter、baidu-aip、playsound、pyinstaller几个库,能够实现基本的语音合成及播放功能,能够脱离python开发环境运行,便于自行维护和扩展,缺点是界面比较简陋、功能比较单一,有兴趣的小伙伴可以自行修改完善。

总结

以上是编程之家为你收集整理的一个语音播报软件还给我整付费?我自己直接用Python写了个!全部内容,希望文章能够帮你解决一个语音播报软件还给我整付费?我自己直接用Python写了个!所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶