eagler8 发表于 2020-2-5 08:26:14

【Arduino】168种传感器系列实验(138)---TTS文本转语音模块

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验一百三十八:中文TTS文本转语音合成模块 替代SYN6288和XFS5152



eagler8 发表于 2020-2-5 08:41:53

TTS(Text-To-Speech,文本到语音)
我们比较熟悉的ASR(Automatic Speech Recognition),是将声音转化为文字,可类比于人类的耳朵。而TTS是将文字转化为声音(朗读出来),类比于人类的嘴巴,是人机对话的一部分,让机器能够说话。

TTS是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地转化为自然语音流。TTS技术对文本文件进行实时转换,转换时间之短可以秒计算。在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感。TTS语音合成技术即将覆盖国标一、二级汉字,具有英文接口,自动识别中、英文,支持中英文混读。所有声音采用真人普通话为标准发音,实现了120-150个汉字/分钟的快速语音合成,朗读速度达3-4个汉字/秒,使用户可以听到清晰悦耳的音质和连贯流畅的语调。有少部分MP3随身听具有了TTS功能。

eagler8 发表于 2020-2-5 09:00:21

本帖最后由 eagler8 于 2020-2-5 10:12 编辑

语音合成(SpeechSynthesis)
语音合成,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是中文信息处理领域的一项前沿技术,解决的主要问题就是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。我们所说的“让机器像人一样开口说话”与传统的声音回放设备(系统)有着本质的区别。传统的声音回放设备(系统),如磁带录音机,是通过预先录制声音然后回放来实现“让机器说话”的。这种方式无论是在内容、存储、传输或者方便性、及时性等方面都存在很大的限制。而通过计算机语音合成则可以在任何时候将任意文本转换成具有高自然度的语音,从而真正实现让机器“像人一样开口说话”。

语音合成是通过机械的、电子的方法产生人造语音的技术。TTS技术(又称文语转换技术)隶属于语音合成,它是将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语输出的技术。TTS将储存于电脑中的文件,如帮助文件或者网页,转换成自然语音输出。TTS不仅能帮助有视觉障碍的人阅读计算机上的信息,更能增加文本文档的可读性。TTS应用包括语音驱动的邮件以及声音敏感系统,并常与声音识别程序一起使用。语音合成满足将文本转化成拟人化语音的需求,打通人机交互闭环。 提供多种音色选择,支持自定义音量、语速,让发音更自然、更专业、更符合场景需求。语音合成广泛应用于语音导航、有声读物、机器人、语音助手、自动新闻播报等场景,提升人机交互体验,提高语音类应用构建效率。   

eagler8 发表于 2020-2-5 11:20:18

TTS一般分为两个步骤
一、 文本处理。这一步做的事情是把文本转化成音素序列,并标出每个音素的起止时间、频率变化等信息。作为一个预处理步骤,它的重要性经常被忽视,但是它涉及到很多值得研究的问题,比如拼写相同但读音不同的词的区分、缩写的处理、停顿位置的确定,等等。
二、语音合成。狭义上这一步专指根据音素序列(以及标注好的起止时间、频率变化等信息)生成语音,广义上它也可以包括文本处理的步骤。这一步主要有三类方法:
1、拼接法,即从事先录制的大量语音中,选择所需的基本单位拼接而成。这样的单位可以是音节、音素等等;为了追求合成语音的连贯性,也常常用使用双音子(从一个音素的中央到下一个音素的中央)作为单位。拼接法合成的语音质量较高,但它需要录制大量语音以保证覆盖率。
2、参数法,即根据统计模型来产生每时每刻的语音参数(包括基频、共振峰频率等),然后把这些参数转化为波形。参数法也需要事先录制语音进行训练,但它并不需要100%的覆盖率。参数法合成出的语音质量比拼接法差一些。
3、声道模拟法。参数法利用的参数是语音信号的性质,它并不关注语音的产生过程。与此相反,声道模拟法则是建立声道的物理模型,通过这个物理模型产生波形。这种方法的理论看起来很优美,但由于语音的产生过程实在是太复杂,所以实用价值并不高。

eagler8 发表于 2020-2-5 14:24:40


中文TTS文本转语音合成模块(当前版本V5 )
网上资料非常少,细看模块上主要有三块芯片,U1估计是主要芯片,可惜被盖住了,查不到具体型号。

eagler8 发表于 2020-2-5 14:50:05


U2是8002A
8002A 是一颗带关断模式的音频功放 IC。在 5V 输入电压下工作时,负载(3Ω)上的平均功率为 3W,且失真度不超过 10%。而对于手提设备而言,当 VDD 作用于关断端时,8002A 将会进入关断模式,此时的功耗极低,IQ 仅为 0.6uA。8002A 是专为大功率、高保真的应用场合所设计的音频功放 IC。所需外围元件少且在 2.0V~5.5V 的输入电压下即可工作。

功能特点
¾ 无需输出耦合电容或外部缓冲电路。
¾ 稳定的增益输出。
¾ 外部增益设置。
¾ 封装形式:SOP8、SOP8-PP、DIP8、MSOP8。

eagler8 发表于 2020-2-5 15:13:18


U5的型号是MX25L6406EMI-12G

功能描述:IC FLASH SER 64MB 86MHZ 16SOP
RoHS:是
类别:集成电路 (IC) >> 存储器
系列:MX25xxx05/06
标准包装:2,500
系列:- 格式 -
存储器:EEPROMs - 串行
存储器类型:EEPROM
存储容量:1K (128 x 8)
速度:100kHz
接口:UNI/O(单线)
电源电压:1.8 V ~ 5.5 V
工作温度:-40°C ~ 85°C
封装/外壳:8-TSSOP,8-MSOP(0.118,3.00mm 宽)

eagler8 发表于 2020-2-5 15:26:30

MX25L6406EMI-12G,查到的外文资料,功能方框图和型号命名规则

eagler8 发表于 2020-2-5 15:26:48

eagler8 发表于 2020-2-5 19:45:32

本帖最后由 eagler8 于 2020-2-6 09:11 编辑



eagler8 发表于 2020-2-6 09:11:41

eagler8 发表于 2020-2-6 09:12:00

eagler8 发表于 2020-2-6 09:12:23

eagler8 发表于 2020-2-6 09:12:52

eagler8 发表于 2020-2-6 14:21:01

/*
【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验一百三十八:中文TTS文本转语音合成模块 替代SYN6288和XFS5152
实验接线:
TX -> Arduino 0
RX -> Arduino 1
5V -> Arduino 5V
GND -> Arduino GND
*/

void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("1234567890") ;
delay(5000);
Serial.println("abcdefghijk") ;
delay(5000);
}
页: [1] 2 3
查看完整版本: 【Arduino】168种传感器系列实验(138)---TTS文本转语音模块