APP下载

STM32实现语音播报功能的研究

2015-05-30刘加勤王鹏飞

刘加勤 王鹏飞

【摘要】一种以STM32为核心的嵌入式语音播报系统,其核心处理器选用意法半导体公司的STM32F103C8T6,主控制器接收上位机指令并解析得到文本信息,通过中英文语音合成板卡XF-S4243CE将上位机的文本信息转换为语音信息。

【关键词】智能报警 语音播报 语音合成

【课题项目】2012年地方高校国家级大学生创新训练计划项目《语音提示自动复位限电控制器的研究与设计》(项目编号:201210324010)的研究成果之一。

【中图分类号】TP 332 【文献标识码】A 【文章编号】2095-3089(2015)09-0040-03

随着人们生活水平的不断提高,各种大功率家电走进千家万户,用电量急骤增加,而供电线路所能通过的电流容量是有限的,一旦超载,轻则导线发热,重则起火。嵌入式语音播报自动复位限电系统,具有体积小、功耗低、可靠性高、安装灵活等特点,语音合成结果清晰自然准确,特别适用于智能家居服务、学生宿舍用电服务等领域。在家庭、 医院、学生宿舍、商场等场所使用这种限电报警系统可以有效地减少电流过载带来的危害。

1.语音提示自动复位限电控制器设计方案

本设计的目的是提供一种语音提示自动复位限电控制器,当家庭、 医院病房、学生宿舍、商场等场所用电量超过导线的负荷时自动断电,并用语音提示,当导线的负荷减轻后自动复位供电。

图1是本实用新型电路的原理图。图2是本实用新型电路的外壳结构示意图。220V交流电输入端(1)经过电阻(R1 )、电容(C1 )、二极管(VD2 )、稳压二极管(VD1 )变压整流稳压后向后级电路供电,三极管(VT1 、VT2 )及其外围电路组成二级放大电路,其特征是:电压取样电感(L)和继电器常闭触点(K-1)串联,电压取样电感(L)的一端通过二极管(VD3)、可变电阻(RP)接三极管(VT1 )的基极, 电压取样电感(L)的另一端接电源的负极,继电器线圈(K)的一端接三极管(VT2 )的发射极,另一端接电源的负极, 语音固化集成电路(IC)电源输入端与继电器常开触点(K-2)串联。其它电子原件按图1电路原理图顺序连接。

在图2的实例中,线路板放在装有接线排(7)的绝缘外壳(4)中,安置孔(6)放置发光二极管(VD4),声孔(5)内侧放置喇叭(A),220V电源输入端(1)和220V电源输出端(2)接在接线排(7)上,固定孔(3)用于安装时固定。

图1 电路原理图

图2 外壳结构示意图

采用上述技术方案的优点是:低成本,微功耗,高灵敏,杜绝了火灾隐患。

2.语音合成技术和文语转换系统

嵌入式语音播报系统的一个重要工作是语音的合成。语音合成就是将一系列的输入文字信号序列经过适当的韵律处理后送入合成器,产生出具有尽可能丰富表现力和高自然度的语音输出,从而使计算机或相关的系统能够发出像“人”一样自然流利声音的技术。这里的关键是“人”字。如何让电脑发出像“人 ”一样高度灵活性、强适应性、鲜明个性、丰富表现力的语音是语音合成研究的目标。而且还希望合成系统能够超越一般人的发音状况,如实现多个发音人的输出或者声音转换等[1]。它涉及声学、语言学、数字信号处理、计算机科学等多个学科,是中文信息处理领域的一项前沿技术,它是将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语输出的技术。语音合成是人机语音通信的一个重要组成部分。语音合成研究的目的是制造一种会说话的机器[2] ,它解决的是如何让机器象人那样说话的问题,使一些以其它方式表示或存储的信息能转换为语音,让人们能通过听觉而方便地获得这些信息。

文语转换系统实际上可以看作是一个人工智能系统。为了合成出高质量的语言,除了依赖于各种规则,包括语义学规则、词汇规则、语音学规则外,还必须对文字的内容有很好的理解,这也涉及到自然语言理解的问题。文语转换过程是先将文字序列转换成音韵序列,再由系统根据音韵序列生成语音波形。其中第一步涉及语言学处理,例如分词、字音转换等,以及一整套有效的韵律控制规则;第二步需要先进的语音合成技术,能按要求实时合成出高质量的语音流。因此,一般说来,文语转换系统都需要一套复杂的文字序列到音素序列的转换程序,也就是说,文语转换系统不仅要应用数字信号处理技术,而且必须有大量的语言学知识的支持[3]。

文语转换系统分三个部分:语言处理、韵律处理和声学处理。语言处理在文语转换系统中起着重要的作用,主要模拟人对自然语言的理解过程——文本规整、词的切分、语法分析和语义分析,使计算机对输入的文本能完全理解,并给出后两部分所需要的各种发音提示。作为一种有调语言,汉语韵律特征非常复杂。古汉语的平仄以及现代汉语拼音,对于同样一个音节,出现在不同的环境下,其韵律参数都是各不相同的。用有限的存储单元存储基本汉语基本语音单元,进而从有限的存储单元中合成出无限词汇,组成连续汉语语句。必须在一定的韵律规则下对音库单元的韵律参数进行调整,以得到符合当前语言环境的语音库单元。韵律处理为合成语音规划出音段特征,如音高、音长和音强等,使合成语音能正确表达语意,听起来更加自然。声学处理根据前两部分处理结果的要求输出语音,即合成语音。

TTS(文语转换)在国内外发展得十分迅速[4],我国的研究己逐步从理论向研制开发方面发展,国内许多单位纷纷开始研制中文TTS系统,并已进入实用阶段,其应用领域十分广泛,技术也日趋成熟。目前在嵌入式应用领域,具有代表性的有:科大讯飞的XFS4243CE和语音天下的SN6658。本文的嵌入式语音播报系统是以嵌入式微处理器为核心,外围加入语音合成板卡及相关电路构成。中文语音合成板卡选用科大讯飞的XFS4243CE。

3.硬件电路的设计

本嵌入式语音播报系统的硬件电路主要由4个模块组成,即主控制器模块、语音合成模块、音频功放模块和电源模块。上位机发送指令到主控制器模块,主控制器分析指令,通过SPI接口将含有文本信息的指令发送到语音合成板卡,语音合成板卡通过TTS技术把文本信息转换为语音信息,送往音频功放电路,主控制器模块也会监测系统的运行情况,并向上位机返回当前系统的运行状态,遇到紧急情况时会进行语音提示。

3.1主控制器电路设计

本系统选用STM32F103C8T6作为主控制器,STM32F103C8T6是增强型,32位基于ARM核心的带闪存的微控制器,工作频率最高达72MHz,高达90DMips,1.5DMips/ MHz。

图3 主控制器设计原理图

其单周期硬件乘法和除法可以加快计算,内置闪存存储器容量达128K字节,可以用来存放程序和数据。

图3为主控制器设计原理图,参考了意法半导体公司的STM32F103C8开发手册。

3.2语音合成电路设计

主控制器通过SPI接口和XFS4243CE模块相连接,主控制器可通过SPI通讯接口向XFS4243CE模块发送控制命令和文本,XFS4243CE模块接收到主控电路发来的文本后,合成语音信号并输出,输出的信号进过功率放大器进行放大后连接到扬声器进行播放。

3.3 XFS4243CE与上位机通讯的电路设计

XFS4243CE以单片机作为上位机时,可通过SPI 串口相连。XFS4243CE模块的SPI接口是4线全双工同步串行通讯接口,XFS4243CE 语音板卡在 SPI 通讯中设为 Slave 身份,上位机作为SPI通讯中的Master身份,上位机提供SPI 通讯所需的时钟信号。

SPI通讯是同步串行通讯,当上位机和XFS4243CE的通讯时,上位机提供同步时钟信号,在同步时钟的上升沿时,XFS4243CE 锁存1bit数据,每传输8bits数据就完成一个字节数据的传输。

3.4电源模块电路

XFS4243CE语音板卡的工作电压为3.3V,以5V外部电源作为输入通过电源转换模块转换得到3.3V电压。电源转换模块电路图如图4所示。

图4 电源转换模块

4.软件系统设计

语音播报流程为:上位机发送给XFS4243CE模块的所有命令和数据都需要用“帧”的方式进行封装后传输[5],帧结构由帧头标志、数据区长度和数据区三部分组成,数据区是由命令字和命令参数组成的,上位机使用命令字来实现语音合成模块的各种功能,传输过程中,主控制器首先查询状态管脚RDY输出工作状态,当引脚处于低电平时,表明板卡处于空闲状态,没有合成文本,可以发送文本信息;当引脚处于高电平状态时,表明板卡处于合成文本的工作状态。在发送前,将SPI_SSEL置为低电平,发送一个字节后将SPI_SSEL置为高电平。

XFS4243CE模块支持任意中文文本、英文文本的合成,可以采用GB2312、GBK、BIG5和UNICODE四种编码方式。每次合成的文本量最多可达4K字节。如果在语音合成的过程中又接收到一帧有效的合成命令帧,模块会立即停止当前正在合成的文本,转而合成新收到的文本。若上位机需要确保上次文本被完整合成之后,再发送合成命令帧合成下一段文本,则需要通过回传确定模块的工作状态。 程序过程如下:1、上位机先给XFS4243CE模块发送一个文本合成命令帧,携带不超过4k个字节的文本;2、上位机等待XFS4243CE模块自动返回的回传信息,直到收到“0x4F”回传,说明前面的文本已合成完毕;3、上位机向模块再次发送一个文本合成命令帧,发送出剩下的文本。在整个软件系统中,XF-S4243CE接收含文本信息的语音合成命令。命令和数据需要用“帧”的方式进行封装后传输,帧结构由帧头、待合成文本的长度、文本合成命令字、文本编码格式、待合成的文本组成。传输过程中,主控制器首先查询状态管脚 RDY输出工作状态, 当引脚处于低电平时,表明板卡处于空闲状态,没有合成文本,可以发送文本信息;当引脚处于高电平状态时,表明板卡处于合成文本的工作状态。传输时,SPI 使能选择信号 SS L 保持低电平。程序中文本信息采用GBK编码。当XF-S4243CE正在合成文本的时候,如果又接收到一帧有效的数据,板卡会立即停止当前正在合成的文本,转而合成所接收到的最新的文本。

5.性能测试

为了保证语音合成系统播报的清晰度和正确率,本文对所描述的语音合成系统做了一系列的测试。测试平台选用了模拟学生宿舍因使用大功率电器导致电路过载的情形,分使用女声普通话和英文播报10次,测试中,中文播报虽语句正确,但是基本是平铺直叙,一字一顿。而英文播报更为流畅,语句富含感情,测试结果较为理想。

参考文献:

[1]刘浩杰,杜立民.语音合成技术的发展与展望.微计算机应用,2007,7.726-730页

[2]李涛.基于MIDI的汉语普通话语音合成算法 .复旦大学硕士论文.2007

[3]wikipedia.语音合成. http://zh.wikipedia.org/wiki/语音合成

[4]Manduchi,Flores,Cizdziel,Obraczka,Do,Esser.Transit Information Access for Persons with Visual or Cognitive Impairments.UC Santa Cruz Previously Published Works.2014

[5] http://www.iflytek.com/index.php?a=down&catid=15&i d=1148&name=XFS4243CE中文语音合成芯片用户开发指南1&path=upload/contents/2013/07/51f7611c9c64e.pdf

作者简介:

刘加勤,此国家级大学生创新训练计划项目的指导教师;1958年5月出生,男,汉族,江苏东台人,副教授,现任盐城师范学院物理科学与电子技术学院党总支书记;主要研究方向:电子、电气自动控制及党建工作

王鹏飞,此国家级大学生创新训练计划项目的团队成员;1992年5月出生,男,汉族,江苏盐城人;现为盐城师范学院物理科学与电子技术学院电子信息工程专业10(3)班学生