精华内容
下载资源
问答
  • 语音播报软件

    2014-05-06 13:58:30
    本次做的这个小软件主要是用来进行语音播报使用的小测试,希望可以给大家以参考,做出更好的软件出来。
  • 网络语音播报软件

    2014-09-28 16:53:40
    就是一个语音播报的软件可以播报语音,打汉字变语音
  • 微信支付宝收款监控是一款很好用微信支付宝语音播报收款软件。许多人都是有着在工作中需要收款时候嘛,如果想要获得最好收款方式话,那么你可以使用微信支付宝收款监控进行收款语音播报,微信支付宝收款监控...
  • 学Python这么久不如动手写一款自己的语音广播软件,即使发生故障也可以自行排除。1界面设计在开始动工之前当然要分析需求,我要核心功能是将一段文字通知输入软件,然后将其转换为语音并播放出来。这项功能虽然并...

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

    1

    界面设计

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

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

    ***步:建立一个窗体

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

    2afa52d00c7853f3cd6feac7dfc088db.jpeg-wh_651x-s_819385723.jpeg

    第二步,设置一个控件

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

    d7d030ea3356d4564764267a8076dfe1.jpeg

    第三步,提供选项

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

    856dd947687ba82cae5095ee58829c27.jpeg

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

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

    a52269eae65254f1eb6e62f6a3b5b610.jpeg

    最终界面效果如下:

    f0176c5e79bb228195369773be3c3b59.png

    2

    语音播放

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

    1).语音接口

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

    bc6d324af8a572582ea2d85d08c5d9ac.jpeg

    然后使用 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).功能设计

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

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

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

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

    b33d28356d8bbd2571705c1a8dba47c5.jpeg

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

    460fbbfb2e7d5ca874e212d288f9b33c.jpeg

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

    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导入其他库的时候尽量有选择性,不要导入整个库,不然打包后的文件会非常庞大。

    a9d5b4a75112cd971cb5a5546c05d0a1.gif

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

    【责任编辑:庞桂玉 TEL:(010)68476606】

    点赞 0

    展开全文
  • 做刚做一个语音报架软件,报价最多不超过10000,超过10000则按位读取,可以读26个字母及0-9数字,简单好用!
  • 文字转语音助手 5.3 文字播报软件。 文字转语音助手 官网,文字转换语音软件语音合成软件,文字转mp3软件,接近真人发声,免费下载试用。 支持循环播音,手动播n秒或n轮,可设置每轮间隔。也可以制作带背景音乐...
  • 为您提供影院语音播报系统下载,影院语音播报系统是一款专为电影院设计打造自动播音软件,用户可以自定义播报内容和时间,软件更内置了多种人声,如校园女声、校园男声以及儿童节目女主播等,十分实用,有效节省...
  • 为您提供超市语音播报系统下载,超市语音播报系统是一款语音播报软件,在你录入声音,设定好场景和其他选项之后,就可以播放语音,很适合在学校、商场、车站等工作使用,非常方便,有需要赶快下载吧!...
  • 树莓派之天气预报语音播报

    千次阅读 2019-04-07 10:33:42
    目录树莓派之天气预报语音播报方案选定项目基调需求分析解决方案具体实施step1天气信息安装ilang软件json解析和文字组合定时任务 树莓派之天气预报语音播报 前几天跟同事在聊家里“小爱同学”可以语音报天气,听...

    树莓派之天气预报语音播报

    前几天跟同事在聊家里的“小爱同学”可以语音报天气,听起来不错,也想要一个。不过嘛,作为技术宅的本人,如果买一个的话,是不是太Low了,于是想到家里万能的树莓派,实现这个功能应该是问题不大的。开始了折腾。

    方案选定

    项目基调

    原则1:不对树莓派硬件进行大的改动;
    原则2:我们一定要用开源或者免费的方案;
    

    需求分析

    1. 要获取天气预报信息
    2. 要组合成相应文字
    3. 文字转语音
    4. 语音播报
    5. 定时执行

    解决方案

    • 天气预报:
      天气预报服务供应商有很多,我选的叫和风天气,和小风天气是专为个人开发者、学生、公益组织以及所有非商业环境使用而推出的免费天气数据服务,涵盖了几乎所有基础天气数据。对于我而言,够用就好。
    • 组合成相应文字:
      这部分我们可以用自己的代码来实现
    • 文字转语音:
      文字转语音是我们项目的核心,有两种方向,一是使用在线转,本地播放;优点是声音优美,缺点是依赖服务商,还有多数会要收费,另一个是本地转本地播放;优点是不依赖别人,缺点是声音差点;我做的不是商用,所以音质差点就差点吧,能听懂就行。所以选择ilang方案,本地转换python2.7环境的一个文字转语音项目。
    • 语音播报:
      ilang方案里可以直接播放。
    • 定时执行:
      linux系统里支持定时任务,所以crontab -e 命令可以满足我们的要求

    具体实施

    step1天气信息

    在和风天气网站注册个帐号,拿到key,用post请求就可以得到返回的json格式数据了:
    https://free-api.heweather.net/s6/weather/forecast?location=成都&key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    返回数据:
    返回的天气json格式数据

    安装ilang软件

    这里有个前提,因为ilang是基于python2.7的,所以系统中必须要有python2.7;
    正常情况下输入以下命令:

    sudo apt-get install mpg123
    sudo pip install ilangbd

    完成后测试

    ilang “你好,world!”

    注意不要在hdmi接口上听,否则听不到最前面的两个字,所以用音箱直接连树莓派的音频输出吧;
    如果还有疑问请参考这篇博客:树莓派使用ilangbd库进行python进行中文文本转语音

    json解析和文字组合

    好了,现在把它们串起来,下面是python3.4的代码:(我的系统装了python3.4和python2.7两个版本的python)

    import json
    import os
    import requests
    
    postdata = {'location': '成都', 'key': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'}
    stra = requests.post('https://free-api.heweather.net/s6/weather/forecast', data=postdata)
    json_obj = json.loads(stra.text)
    w0 = json_obj['HeWeather6'][0]
    wether = w0['daily_forecast'][1]
    
    outstr = '明天天气{0}转{1},温度{2}到{3}摄氏度.'.format(wether['cond_txt_d'], wether['cond_txt_n'], wether['tmp_max'], wether['tmp_min'])
    cmdline = 'ilang "' + outstr + '"'
    os.system(cmdline)
    

    保存为AnalysisWeather.py,OK,如果不出什么意外,到目前为止,在命令行中输入:

    python3 AnalysisWeather.py

    应该可以听到它播报出正常的天气语音了;那么我们的工作是不是快结束了呢?还没有,后面还有一个大坑,对那就是crontab。

    定时任务

    crontab是linux的定时任务,看起来是很OK的对不对。它的坑就是它没有环境变量的支持,所以你的python2,python3的位置,以及其它自己要定义的环境变量都要自行设置,否则就会出一经典的一幕:在命令行里执行的好好的程序,在crontab里死活不执行。不说了,具体的是这样,把上面的命令放到一个shell命令文件里:
    alarm.sh:

    #!/bin/bash
    source /etc/profile
    source /home/pi/.bashrc
    cd /home/pi/al_clock
    python3 AnalysisWeather.py
    

    好了,在命令行再试一下:

    /home/pi/al_clock/alarm.sh

    有声音就OK了,最后放到crontab里面:

    crontab -e
    #auto rebort weather with void for
    30 7 * * * /home/pi/al_clock/alarmd.sh

    每天早上7点半播报天气
    大功告成!
    我们的口号是:我们要玩树莓派,不要被树莓派玩儿!

    展开全文
  • 微信收款语音播报器是一款十分不错微信收款语音播放工具,软件支持电脑上播放语音收款语音,还可以记录收款金额,本站提供是该软件的绿色版本,需要朋友不妨千里来本站下载使用。 使用方法  1、首先启动...
  • 任务书 公交报站器由控制模块...最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。 开发思路: 这个系统设计需要完成硬件平台和软件平台搭建,

    任务书

    公交报站器由控制模块STC89C52单片机作为控制核心,硬件电路分为12864液晶屏、ISD1730语音芯片、温湿度传感器和红外传感器等模块。该系统的功能是:首先可以通过八个按键实现“上行报站”、“下行报站”、“语音重播”、“报站器复位”四个功能以及完成时钟参数设置等功能,其次可以实现站点信息语音组合播报和温湿度检测及相应提示;最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。

    开发思路:

    这个系统的设计需要完成硬件平台和软件平台的搭建,主要的一个特点是涉及的外设比较多,所以对于程序部分的逻辑设计显得尤其重要,另外使用的51单片机,所以性能不一定够用,而且其内部的资源也确实少的可以,

    硬件平台:

    根据题目的要求,我打算采用以核心板为中心,分别通过外部引线的方式,将不同的模块进行连接,实现这个系统的功能,也就是最后会将各个模块用杜邦线的形式进行连接,因为考虑到任务的时间太短,不能最更高程度的集成化处理,所以打算采用模块化设计。而不是这个做一个集成化的实物。

    note:初步的设想是有两个比较重大的节点,如果程序调试进展顺利,在时间允许的条件下,我会选择使用PCB做一个底板,将所有的模块放在一个板子上;但是如果程序调试不顺利,那我我会把时间更多的分配到功能的实现上,而不是做系统的美化处理。

    需要购置的模块:

    • Stc89c52核心板:
      担心内部资源不够使用,时序满足不了外设的执行过程,从而影响系统的实时性。提到这个实时性响应,一般提升系统实时性响应的方式有如下三种:

      • 最简单粗暴的方式,直接更换高性能的CPU,爱玩游戏的同学不都是这么搞的嘛

      • 在程序中加入中断,将一些关键性的操作,放在中断中完成,但是也不能在中断中持续操作,因为有可能会因为操作时间过长,而干扰下一次的中断触发。

      • 第三种方式是主动降低系统中不需要时时响应的部分,降低程序的刷新率。比如:OLED屏幕中长时间不变的部分,温湿度采集的数值,GPS的信号等,均可以降低到一分钟刷新一次的速度。

        note:如何降低刷新率呢,这个非常简单,就是在程序中加入一个标志位,在执行以前,先判断标志位是否达到了设定的值,达到后,才开始执行程序,这个标志位也可以理解为知道目前整个系统已经执行了多少次。

    在这里插入图片描述

    • Oled显示屏: iic接口(2个)
      对于这个模组,可以通过对汉字的取模,来实现对对汉字的显示。

    • 矩阵按键模块:实现扫描显示(占用的引脚数目至少是8个)
      这个模块特别占用引脚数目,单纯不走协议的话,对于4*4的引脚,需要至少8个引脚,来完成电平信号的识别,需要自己对采集的数据进行编码,才可以完成按键键值的确定。(家里有)

    • rtc时钟模块:iic接口(2个)
      根据刚才查阅的资料可以知道,它需要注意的就是对于任务书中的星期的处理。剩下的也都还是可以的。(家里没有)

    • ds18b20: spi接口(2个)
      这个算是一个可选的方案,对于比较老套设计方案,或者当前的单片机开发板上都是板载的资源。通过一个spi接口,需要两个引脚接口来完成对于数据的采集。(家里也有)

    • 温湿度模块:iic接口(集成化的一个温湿度采集模组)(2个)
      这是我第一次发现的模块,可以一次性完成湿度和温度的数据采集,需要调研的就是对于数据的采集和处理过程。(家里没有)

    • 语音播放模块:串口接口(2个)
      经过调研,已经知道这个模块使用的文字转语音模组,可以通过串口将需要说的文字,转化为语音播报。(家里也有)

    • 红外传感模块:(1个)
      需要占用一个引脚,当检测到外部的障碍物后,发送一个高电平,所以需要配置一个引脚作为外部输入检测。(考虑使用外部中断引脚)来提升系统的响应速度。(家里有)

    系统框图

    在这里插入图片描述

    器件选型

    • 红外模块:常规的模块 资料有 一个普通IO

    • OLED显示屏:带有IIC接口的模块 (手头没有) 资料有 IIC接口

    • 4*4矩阵键盘:普通的4乘4矩阵键盘 资料有 八个普通IO

    • RTC时钟:PCF8563T带有IIC接口 (手头没有) 资料有 IIC接口

    • 语音播报模块:中文TTS文字转语音模块 (这个是重点啊。。) 资料有 串口接口

    • 温湿度采集模块:GY-SHT30-D带IIC接口的模块 (手头没有) 资料有 IIC接口

    • 电源模组:带有至少5路以上的3.3V和5V的电源模块 (手头有一个,再买一个备用)

    经过反复的更正和设想,暂时性完成硬件的选型和设计规划,对于资料也已经收集的很多了。感谢普中的前期工作:

    普中开发板

    软件调试

    开发环境:

    • keil4软件
    • 串口调试助手

    软件设计思路:

    分模块单独进行模块的调试,一方面是验证模块的功能性,另一方面是是按照任务书的要求,对模块的独立程序进行探索性开发,预期是达到和任务书的数据接口类型相一致的设计目标。具体的执行计划如下安排:

    1)第一步先基于单片机开发板完成初步的功能验证,寻找最优布局和合理的程序架构,因为用开发板,初期不用兼顾硬件的接触不良这个问题。在程序设计中,优先调试逻辑部分,通过串口打印输出需要显示的内容,然后才是通过外设进行脱机处理,比如显示屏显示啊,语音播报等。

    (1)串口通信(语音播报)

    目前已经可以成功发送字符串了。

    在这里插入图片描述

    51单片机实现字符串的打印输出,在程序实现上是在考验对于C语言中对于字符串操作的部分的理解和掌握。因为串口每次只能发送一个字节(按照编码,一个汉字是采用两个字节进行编码),所以需要先定义一个字符串数组,然后进行发送,需要注意的一点是,字符串的结束标志是‘\0’,当发送函数检测到结束符时,则结束发送。

    在这里插入图片描述

    按照任务书的要求,可以通过定义不同的字符串,从而实现不同的语音播报,具体在程序中则是通过发送不同的字符串,来实现不同的语音播报。

    语音信息的数据类型:

    • 起步阶段

      • 车辆起步请扶好站好注意安全
      • 请主动给老弱病残让座
    • 到站阶段

      • 站点信息+到了

      • 请依次从后门下车下车请注意安全

        note:站点信息包括8个站点,打算用ABCDEFGH +站代替。

    • 突发状况

      • 当前温度过高请注意防暑降温

    (2)矩阵键盘

    在这里插入图片描述

    上图是矩阵键盘的原理图,在程序中,先进行列扫描,设置键值为0~3,然后再进行行扫描,发现每一行的加4.从而通过确定列和行,得到最终的键值。然后根据键值的不同,实现不同的功能。比如任务书中的上下行切换,重复播报,初始化。

    在程序中加入按键释放功能,其意义是确定只有当按键释放后,程序才接着往后执行。

    目前总共有16个按键,根据任务书的要求,对不同的键值的功能分配如下:

    • 键值0

      主要是实现站点信息的上行播报功能

    • 键值1

      主要是实现站点信息的下行播报功能

    • 键值2

      主要是当前站点信息语音的重复播报

    • 键值3

      主要是实现对站点信息的复位,暂定从初始位置开始播报语音

    • 键值4

      实现时钟显示中对年的加操作

    • 键值5

      实现时钟显示中对年的减操作

    • 键值6

      实现时钟显示中对月的加操作

    • 键值7

      实现时钟显示中对月的减操作

    • 键值8

      实现时钟显示中对日的加操作

    • 键值9

      实现时钟显示中对日的减操作

    • 键值10

      实现时钟显示中对小时的加操作

    • 键值11

      实现时钟显示中对小时的减操作

    • 键值12

      实现时钟显示中对分钟的加操作

    • 键值13

      实现时钟显示中对分钟的减操作

    • 键值14

      实现时钟显示中对秒的加操作

    • 键值15

      实现时钟显示中对秒的减操作

    (3)红外模块

    红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通φ5发光二极管相同。

    在这里插入图片描述

    常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。

    在这里插入图片描述

    数字量电平信号输出(白线高电平,黑线低电平)

    (4)RTC模块

    (5)OLED 屏幕

    对于显示内容的分析,重点包括三种信息的显示:

    • 时钟信息,标准的的显示格式:2017年2月23日 星期4 08:45:10

      note:注意对于星期的显示需要用一个算法进行实现,判断出初始当天的星期几,然后计算和当前相距的天数,把天数对7取余,将余数和初始的星期相加,即为当前的星期,然后将星期显示到OLED上。

    • 站点信息的提示,即当前所处的站点信息

    • 语音提示的流动显示

      因为屏幕太小,而显示的内容过多,所以需要将信息利用流动的形式显示到OLED屏幕上。

    • 当前的温度和湿度信息

      由于采用的的是一体化的模块,所以温湿度可以放在屏幕中的一个固定位置。

    为了提升系统的实时性,需要对于不用长时间显示的内容,降低刷新率,比如温湿度,年月日,星期,站点标识符(station),只需要初始化的时候,将这些信息更新到屏幕上即可。

    (6)温湿度模块

    2)第二步是进行脱机程序的调试,考虑程序能否在既定的程序框架中完成运行。如果不可以,则需要考虑调整系统的响应速度,提升系统的实时性;或者更改系统的执行次序。

    3)第三步是将调试完成的系统,从单片机上转移到核心板上,进行最终的产品包装。

    note:考虑到产品的目的地需要经过快递这个流程,所以保险起见,我想将调试完成的设备,用两块15*20cm的洞洞板和螺栓进行固定,最后用胶带将四周完全密封。只留出需要交互的界面即可。

    展开全文
  • 任务书 公交报站器由控制模块...最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。 开发思路: 这个系统设计需要完成硬件平台和软件平台搭建,

    任务书

    公交报站器由控制模块STC89C52单片机作为控制核心,硬件电路分为12864液晶屏、ISD1730语音芯片、温湿度传感器和红外传感器等模块。该系统的功能是:首先可以通过八个按键实现“上行报站”、“下行报站”、“语音重播”、“报站器复位”四个功能以及完成时钟参数设置等功能,其次可以实现站点信息语音组合播报和温湿度检测及相应提示;最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。

    开发思路:

    这个系统的设计需要完成硬件平台和软件平台的搭建,主要的一个特点是涉及的外设比较多,所以对于程序部分的逻辑设计显得尤其重要,另外使用的51单片机,所以性能不一定够用,其内部的资源也确实少的可以,

    硬件平台:

    根据题目的要求,我打算采用以核心板为中心,分别通过外部引线的方式,将不同的模块进行连接,实现这个系统的功能,也就是最后会将各个模块用杜邦线的形式进行连接,因为考虑到任务的时间太短,不能实现最高程度的集成化设计,所以打算采用选用模块化设计。

    note:初步的设想是有两个比较重大的节点,如果程序调试进展顺利,在时间允许的条件下,我会选择使用PCB做一个底板,将所有的模块放在一个板子上;但是如果程序调试不顺利,那我会把时间更多的分配到功能的实现上,而不是做系统的美化处理上。

    需要购置的模块:

    • Stc89c52核心板:
      担心内部资源不够使用,时序满足不了外设的执行过程,从而影响系统的实时性。提到这个实时性响应,总结一下,一般提升系统实时性响应的方式有如下三种:

      • 第一种是最简单粗暴的方式,直接更换高性能的CPU,爱玩游戏的同学不都是这么搞的嘛

      • 第二种是在程序中加入中断,将一些关键性的操作,放在中断中完成,但是也不能在中断中持续操作,因为有可能会因为操作时间过长,而干扰下一次的中断触发。

      • 第三种方式是主动降低程序中不需要时时响应的部分,即降低程序的刷新率。比如:OLED屏幕中长时间不变的部分,温湿度采集的数值,GPS的信号等,均可以降低到一分钟刷新一次的速度。

        note:那该如何降低刷新率呢,这个非常简单,就是在程序中加入一个标志位,在执行以前,先判断标志位是否达到了设定的值,达到后,才开始执行程序,这个标志位也可以理解为知道目前整个系统已经执行了多少次。

    在这里插入图片描述

    • Oled显示屏: iic接口(2个)
      对于这个模组,可以通过对汉字的取模,来实现对对汉字的显示。

    • 矩阵按键模块:实现扫描显示(占用的引脚数目至少是8个)
      这个模块特别占用引脚数目,单纯不走协议的话,对于4*4的引脚,需要至少8个引脚,来完成电平信号的识别,需要自己对采集的数据进行编码,才可以完成按键键值的确定。(家里有)

    • rtc时钟模块:iic接口(2个)
      根据刚才查阅的资料可以知道,它需要注意的就是对于任务书中的星期的处理。剩下的也都还是可以的。(家里没有)

    • ds18b20: spi接口(2个)
      这个算是一个可选的方案,对于比较老套设计方案,或者当前的单片机开发板上都是板载的资源。通过一个spi接口,需要两个引脚接口来完成对于数据的采集。(家里也有)

    • 温湿度模块:iic接口(集成化的一个温湿度采集模组)(2个)
      这是我第一次发现的模块,可以一次性完成湿度和温度的数据采集,需要调研的就是对于数据的采集和处理过程。(家里没有)

    • 语音播放模块:串口接口(2个)
      经过调研,已经知道这个模块使用的文字转语音模组,可以通过串口将需要说的文字,转化为语音播报。(家里也有)

    • 红外传感模块:(1个)
      需要占用一个引脚,当检测到外部的障碍物后,发送一个高电平,所以需要配置一个引脚作为外部输入检测。(考虑使用外部中断引脚)来提升系统的响应速度。(家里有)

    系统框图

    在这里插入图片描述

    器件选型

    • 红外模块:常规的模块 资料有 一个普通IO

    • OLED显示屏:带有IIC接口的模块 (手头没有) 资料有 IIC接口

    • 4*4矩阵键盘:普通的4乘4矩阵键盘 资料有 八个普通IO

    • RTC时钟:PCF8563T带有IIC接口 (手头没有) 资料有 IIC接口

    • 语音播报模块:中文TTS文字转语音模块 (这个是重点啊。。) 资料有 串口接口

    • 温湿度采集模块:GY-SHT30-D带IIC接口的模块 (手头没有) 资料有 IIC接口

    • 电源模组:带有至少5路以上的3.3V和5V的电源模块 (手头有一个,再买一个备用)

    经过反复的更正和设想,暂时性完成硬件的选型和设计规划,对于资料也已经收集的很多了。感谢普中的前期工作:

    普中开发板

    软件调试

    开发环境:

    • keil4软件
    • 串口调试助手

    软件设计思路:

    分模块单独进行模块的调试,一方面是验证模块的功能性,另一方面是是按照任务书的要求,对模块的独立程序进行探索性开发,预期是达到和任务书的数据接口类型相一致的设计目标。具体的执行计划如下安排:

    1)第一步先基于单片机开发板完成初步的功能验证,寻找最优布局和合理的程序架构,因为用开发板,初期不用兼顾硬件的接触不良这个问题。在程序设计中,优先调试逻辑部分,通过串口打印输出需要显示的内容,然后才是通过外设进行脱机处理,比如显示屏显示啊,语音播报等。

    (1)串口通信(语音播报)

    目前已经可以成功发送字符串了。

    在这里插入图片描述

    51单片机实现字符串的打印输出,在程序实现上是在考验对于C语言中对于字符串操作的部分的理解和掌握。因为串口每次只能发送一个字节(按照编码,一个汉字是采用两个字节进行编码),所以需要先定义一个字符串数组,然后进行发送,需要注意的一点是,字符串的结束标志是‘\0’,当发送函数检测到结束符时,则结束发送。

    在这里插入图片描述

    按照任务书的要求,可以通过定义不同的字符串,从而实现不同的语音播报,具体在程序中则是通过发送不同的字符串,来实现不同的语音播报。

    语音信息的数据类型:

    • 起步阶段

      • 车辆起步请扶好站好注意安全
      • 请主动给老弱病残让座
    • 到站阶段

      • 站点信息+到了

      • 请依次从后门下车下车请注意安全

        note:站点信息包括8个站点,打算用ABCDEFGH +站代替。

    • 突发状况

      • 当前温度过高请注意防暑降温

    下图是语音播报模块的管脚定义:

    在这里插入图片描述

    note:管脚中需要注意串行通信中主从机的TX和RX管脚要交叉连接才可以正常通信。如下图所示:

    在这里插入图片描述

    另一个需要注意的问题是,当前单片机串行通信采用的波特率是4800,而语音通信模块的串行通信波特率要求是9600才可。

    在这里插入图片描述
    又有一个灵感,我可以直接用串口助手,对语音模块进行调试呀。试试呗,争取今晚能听到响!!!

    (2)矩阵键盘

    在这里插入图片描述

    上图是矩阵键盘的原理图,在程序中,先进行列扫描,设置键值为0~3,然后再进行行扫描,发现每一行的加4.从而通过确定列和行,得到最终的键值。然后根据键值的不同,实现不同的功能。比如任务书中的上下行切换,重复播报,初始化。

    在程序中加入按键释放功能,其意义是确定只有当按键释放后,程序才接着往后执行。

    目前总共有16个按键,根据任务书的要求,对不同的键值的功能分配如下:

    • 键值0

      主要是实现站点信息的上行播报功能,已经完成了调试,符合任务书要求。

    在这里插入图片描述

    从图中可以分析得出,所谓上行,就是从A站到H站,进行循环执行。

    • 键值1

      主要是实现站点信息的下行播报功能,完成了调试工作,符合任务书要求。

    在这里插入图片描述

    从上图中可以发现,所谓下行,就是站点信息从H站到A站进行循环执行。

    • 键值2

      主要是当前站点信息语音的重复播报

    在这里插入图片描述

    站点语音信息进行重复播报,如图所示,当前站点是G站,并且通过按键,对G站进行了4次播报,并且在完成了重复播报后,程序依旧正常进行下一个站点的信息播报。

    • 键值3

      主要是实现对站点信息的复位,暂定从初始位置开始播报语音

    在这里插入图片描述

    如图所示,当按下初始化站点信息的时候,无论当前执行到何种站点,程序会把站点信息复位到A站。从上图我们也可发现,共进行了两次复位操作。

    • 键值4

      实现时钟显示中对年的加操作

    • 键值5

      实现时钟显示中对年的减操作

    • 键值6

      实现时钟显示中对月的加操作

    • 键值7

      实现时钟显示中对月的减操作

    • 键值8

      实现时钟显示中对日的加操作

    • 键值9

      实现时钟显示中对日的减操作

    • 键值10

      实现时钟显示中对小时的加操作

    • 键值11

      实现时钟显示中对小时的减操作

    • 键值12

      实现时钟显示中对分钟的加操作

    • 键值13

      实现时钟显示中对分钟的减操作

    • 键值14

      实现时钟显示中对秒的加操作

    • 键值15

      实现时钟显示中对秒的减操作

    (3)红外模块

    红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通φ5发光二极管相同。

    在这里插入图片描述

    常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。

    在这里插入图片描述

    数字量电平信号输出(白线高电平,黑线低电平)

    检测到障碍物的时候,输出低电平,

    (4)RTC模块

    (5)OLED 屏幕

    对于显示内容的分析,重点包括三种信息的显示:

    • 时钟信息,标准的的显示格式:2017年2月23日 星期4 08:45:10

      note:注意对于星期的显示需要用一个算法进行实现,判断出初始当天的星期几,然后计算和当前相距的天数,把天数对7取余,将余数和初始的星期相加,即为当前的星期,然后将星期显示到OLED上。

    • 站点信息的提示,即当前所处的站点信息

    • 语音提示的流动显示

      因为屏幕太小,而显示的内容过多,所以需要将信息利用流动的形式显示到OLED屏幕上。

    • 当前的温度和湿度信息

      由于采用的的是一体化的模块,所以温湿度可以放在屏幕中的一个固定位置。

    为了提升系统的实时性,需要对不用长时间显示的内容,降低刷新率,比如温湿度,年月日,星期,站点标识符(station),只需要初始化的时候,将这些信息更新到屏幕上即可。

    (6)温湿度模块

    今天下午的安排是将矩阵程序整合到串口通信中,然后将站点信息、语音提示和按键键值进行整合处理,先测试一下系统执行的实时性的响应程度。经过下午的奋斗,整个系统程序的架构已经初见成效,到目前为止,系统的响应速度还是可以满足功能的要求的。晚上的安排是验证剩余的三个模块(语音播报,RTC模块,OLED显示,温湿度监测)的功能性如何,初步实现基本功能,然后再加入到系统中,比较重要的一点是,要验证语音播报模块的功能如何?

    非常的难过,因为开发板上板载的晶振是12MHz,不能出现9600的波特率,而核心板上的晶振是11.0592Mhz,可以出现9600,所以将芯片搬到了核心板上,然后利用手头仅有的9V 1A的电源供电,后果是唯一的51单片机被挂逼了,结束了自己辉煌而灿烂的一生,可以它还没有看到过三个其他的模块展现生命力的时刻。归根结底是输入电源的功率太大,导致单片机被烧。暂时耽搁了任务进度。

    并不是所有的芯片被烧了之后,都会冒烟,现在的异常是在上电后,短时间会感觉到芯片封装会异常的发热。

    补救措施:为了防止类似的故障出现,我已经联系好之前实验室的小伙伴,争取明天借一块出来,然后在淘宝上也购买了两块,进行备用。

    那就总结一下目前的进度吧,目前已经把软件系统的整个执行过程构建了起来,那么指定一下明天的项目进度安排:

    第一步:将剩余的模块进行功能性实验,实现基本的功能,找到对饮的数据接口。

    第二步:逐个将模块添加到软件系统中,并梳理所用到的硬件引脚分布。

    第三步:对整个系统进行详细的功能测试工作。

    2)第二步是进行脱机程序的调试,考虑程序能否在既定的程序框架中完成运行。如果不可以,则需要考虑调整系统的响应速度,提升系统的实时性;或者更改系统的执行次序。

    脱机验证,第一次失败了,因为核心板的供电电源输入的功率太高,导致芯片挂逼。

    3)第三步是将调试完成的系统,从单片机上转移到核心板上,进行最终的产品包装。

    note:考虑到产品的目的地需要经过快递这个流程,所以保险起见,我想将调试完成的设备,用两块15*20cm的洞洞板和螺栓进行固定,最后用胶带将四周完全密封。只留出需要交互的界面

    展开全文
  • 任务书 公交报站器由控制模块...最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。 开发思路: 这个系统设计需要完成硬件平台和软件平台搭建,
  • 任务书 公交报站器由控制模块...最后可以通过红外传感器自动感应公共汽车是否到达站台,检测到站台后,自动触发报站器语音播报站点信息,和提示语信息。 开发思路: 这个系统设计需要完成硬件平台和软件平台搭建,
  • 《天网中国语音播报王》是一款把文字转成语音朗读软件,是专为您提供电脑播音员。它采用国际领先语音合成技术,播音效果可与专业播音员相媲美,是一款学习和语音宣传完美软件。 【适用场合和作用】 商场、...
  • 《驾考语音宝》是由天天软件工作室独立研发一款机动车科目三考试语音播报器。本应用含有科目三灯光考试语音训练,科目三路考语音训练。平时多听听还可以。不过真考试时候还需要胆大心细。记得小编考科目三...
  • 学Python这么久不如动手写一款自己的语音广播软件,即使发生故障也可以自行排除。1界面设计在开始动工之前当然要分析需求,我要核心功能是将一段文字通知输入软件,然后将其转换为语音并播放出来。这项功能虽然并...
  • 将游戏场景中公告、任务或派单信息通过语音播报,让玩家玩游戏或配送员送货同时,也可接听新任务。 文学小说类软件可以利用百度语音合成技术将文学小说作品进行高质量朗读,流畅清晰,解放双眼,畅听世界。 ...
  • XFS5152CE是科大讯飞TTS语音合成芯片,提供UART,SPI,I2C三种接口为用户实现TTS...由官方提供芯片用户手册,我们可以参考器电路原理进行硬件连接,参考其i2c接口提示,进行软件驱动编写与调试。 由于说STM32...
  • VoiceReader是一款语音合成软件可以将不同声音文件合成为某种特定声音,系统默认支持四种声音:中英文男声、中英文女声、中英文童声、粤语女声。软件功能实用强大,适用于商场内广告播报、促销播报、滚动信息...
  • 可以轻松将小段文字转换成语音播报出来,非常适合商场超市等功能场合的语音播报。随着自媒体创作流行,有些视频创造者将一段文字转成录音,配上画面,从而节省创作成本。下面一起来看看讯飞文字转语音使用方法,...
  • 为了帮大家省事,来给大家总结几个比较热门文字转语音软件,大家可以对比着看看。 1、讯飞配音 使用方式:网页版和APP 声音数量:讯飞配音声音还是比较多,付费声音有53个,7个特色声音。 声音种类:支持7...
  • 语音合成工具

    2018-07-23 22:48:32
    可以免费将文字转换为多种类型的语音,超市播报语音提示,以及各种需要使用场所都可以使用。自用软件
  • 将多个模块任务分为多个级别,以语音识别为主体,摄像头和语音播报为从体,在语音识别到关键字时候,会出发相对应函数,实现不同效果,而onenet是与语音识别互相独立,会源源不断把数据实时发送到云端。...
  • 电脑播报专家软件是由配音员吧网站开发定时播音软件可以满足商场、超市、机场、车站、码头、景点、学校、餐饮娱乐等公共场所播音需求。 配音员电脑播报专家主要功能包括: 1. 文本转语音功能: 对于类似...
  • 为您提供语音广告制作专家下载,语音广告制作专家是一款专门为制作语音广告、商场语音播报和企业宣传语等专业用途而设计专业型语音产品,软件配套有第三代“高保真”真人语音内核,发音流畅、自然,只需输入文字...
  • 将游戏场景中公告、任务或派单信息通过语音播报,让玩家玩游戏或配送员送货同时,也可接听新任务。 文学小说类软件可以利用百度语音合成技术将文学小说作品进行高质量朗读,流畅清晰,解放双眼,畅听世界。 ...
  • 随着网络高速发展,很多网络平台都需要验证码,因为它可以降低平台运行风险,防止一些恶意编程攻击系统。 但因为短信验证码被拦截或其他各种原因,导致用户...2、语音播报清晰、播报三遍,响应及时、到达率接近.

空空如也

空空如也

1 2 3 4 5 6
收藏数 117
精华内容 46
关键字:

可以语音播报的软件