diff --git a/docs/sensors/smart_modules/text_to_speech_synthesizer.md b/docs/sensors/smart_modules/text_to_speech_synthesizer.md index 16c19a52..e6ea104b 100644 --- a/docs/sensors/smart_modules/text_to_speech_synthesizer.md +++ b/docs/sensors/smart_modules/text_to_speech_synthesizer.md @@ -85,23 +85,26 @@ ## Arduino应用场景 -### Arduino 示例程序 +| 支持开发板系列 | +| ---- | +| Arduino UNO R3 | +| Arduino Nano | +| Arduino Mega 2560 | +| ESP32 | -[下载Arduino库](https://github.com/emakefun-arduino-library/emakefun_text_to_speech_synthesizer/archive/refs/tags/release.zip),包含Arduino库文件和示例代码 +- Arduino库和示例程序下载链接: [点击此处链接下载](https://github.com/emakefun-arduino-library/emakefun_tts/archive/refs/tags/latest.zip),包含Arduino库文件和示例代码 -### Arduino 库使用文档 - -[API使用文档](https://emakefun-arduino-library.github.io/emakefun_text_to_speech_synthesizer/classTextToSpeechSynthesizer.html) +- [点击此处文档链接查看API说明](https://emakefun-arduino-library.github.io/emakefun_tts/classemakefun_1_1_tts.html) ### Arduino 库示例程序 -[合成播放文本](https://emakefun-arduino-library.github.io/emakefun_text_to_speech_synthesizer/synthesize_text_8ino-example.html) +- 文本播放 [点击此处链接查看](https://emakefun-arduino-library.github.io/emakefun_tts/play_8ino-example.html) -[从缓存区域合成播放文本](https://emakefun-arduino-library.github.io/emakefun_text_to_speech_synthesizer/synthesize_from_cache_8ino-example.html) +- 缓存文本播放 [点击此处链接查看](https://emakefun-arduino-library.github.io/emakefun_tts/play_from_cache_8ino-example.html) -[合成播放流程控制](https://emakefun-arduino-library.github.io/emakefun_text_to_speech_synthesizer/synthesizing_control_8ino-example.html) +- 播放流程控制 [点击此处链接查看](https://emakefun-arduino-library.github.io/emakefun_tts/play_flow_control_8ino-example.html) -[合成文本播放的详细参数设置](https://emakefun-arduino-library.github.io/emakefun_text_to_speech_synthesizer/configure_synthesizing_parameter_8ino-example.html) +- 设置播放参数 [点击此处链接查看](https://emakefun-arduino-library.github.io/emakefun_tts/play_with_parameters_8ino-example.html) ### Mixly示例程序 diff --git a/docs/sensors/smart_modules/tts_module.md b/docs/sensors/smart_modules/tts_module.md index bd4cf207..155bc326 100644 --- a/docs/sensors/smart_modules/tts_module.md +++ b/docs/sensors/smart_modules/tts_module.md @@ -8,7 +8,7 @@ 语音合成模块是一款高集成度的语音合成模块,该模块方案基于新 一代神经网络算法,选取优质的女声发音人,满足通用应用场景的合成播报。方案以中文为主,但支 持数字、字母、单词、简单的中英文混读,在合成效果(可懂度、清晰度、自然度、表现力、节奏/ 停顿、语速、语调、音质、音色、理解费力程度)方面有显著的提升。 模块可以通过异步串口(UART)接收待合成的文本,直接合成为语音输出;主要是面向中高端应 用,为其提供一套完整的物美价廉的语音解决方案。支持纯中文、常规英文文本(如字母、单词、短句)以及中英文混合合成,可实现多音字、生僻字、数字、数值、日期、时间、字母正确流畅的合成,播放清晰无杂音,支持实时更新的特殊播报(如:字母、数字穿插播报、大写字母缩写;支持五种文本编码方式,当前方案支持 GB2312、GBK、BIG5、UTF16LE 和 UTF8 五种编码方式。每次合成的文本量最多可达 4K 字节(中文不超过 2000 个字);支持多种控制命令,控制命令包括:合成文本、停止合成、暂停合成、恢复合成、状态查询、进入省电模式、唤醒等控制命令。控制器通过通信接口发送控制命令可以对芯片进行相应的控制;可查询芯片的工作状态,通过读芯片自动返回的工作状态字、发送查询命令获得芯片工作状态的回传数据。 -## 模块参数 +## 模块参数 | 引脚名称 | 描述 | | :------: | :----------------------: | @@ -26,13 +26,13 @@ ![机械尺寸图](tts_module/tts_assembly.png) -## 功能特性 +## 功能特性 -### 支持纯中文、常规英文文本(如字母、单词、短句)以及中英文混合合成 +### 支持纯中文、常规英文文本(如字母、单词、短句)以及中英文混合合成 可实现多音字、生僻字、数字、数值、日期、时间、字母正确流畅的合成,播放清晰无杂音,支持实时更新的特殊播报(如:字母、数字穿插播报、大写字母缩写)。 -### 支持五种文本编码方式 +### 支持五种文本编码方式 当前方案支持 GB2312、GBK、BIG5、UTF16LE 和 UTF8 五种编码方式。每次合成的文本量最多支持 4K 字节(经过相应的解码格式解码后),(中文不超过 2000 个字,具体跟编解码格式相关)。具体的每种解码格式字符占用空间参考表 1-1。 @@ -44,9 +44,9 @@ | UTF16LE | 2 字节 | 2 字节 | 2 字节 | 2 字节 | | UTF8 | 1 字节 | 3 字节 | 1 字节 | 3 字节 | -表 1-1 不同解码方式字符占用空间 +表 1-1 不同解码方式字符占用空间 -### 支持多种控制命令 +### 支持多种控制命令 控制命令包括:合成文本、停止合成、暂停合成、恢复合成、状态查询、进入省电模式、唤醒等控制命令。控制器通过通信接口发送控制命令可以对芯片进行相应的控制。 @@ -56,11 +56,11 @@ ### 通信方式 - 芯片和上位机之间都是通过下传命令和状态反馈依次交替的方式进行通信。下传命令是由上位机发起的。状态反馈是由芯片发起的;状态即通信状态,包含帧标记,帧数据长度错误,命令字错误,命令正确执行等。上位机向芯片下传命令后,必然会收到的状态反馈;上位机只有在收到 芯片 的状态反馈后,才能进行下一次的下传命令操作。 + 芯片和上位机之间都是通过下传命令和状态反馈依次交替的方式进行通信。下传命令是由上位机发起的。状态反馈是由芯片发起的;状态即通信状态,包含帧标记,帧数据长度错误,命令字错误,命令正确执行等。上位机向芯片下传命令后,必然会收到的状态反馈;上位机只有在收到 芯片 的状态反馈后,才能进行下一次的下传命令操作。 -芯片在收到上位机的下传命令后,对命令的解析是非阻塞操作,可以较快的反馈状态给上位机。 +芯片在收到上位机的下传命令后,对命令的解析是非阻塞操作,可以较快的反馈状态给上位机。 -对于UART 通信接口,上位机发送下传命令后,芯片 会给上位机反馈状态。上位机在收到反馈状态后,再进行下一次的命令下传。 +对于UART 通信接口,上位机发送下传命令后,芯片 会给上位机反馈状态。上位机在收到反馈状态后,再进行下一次的命令下传。 注意:芯片 在上电后并系统初始化完成后,会向上位机反馈系统 Ready 的状态。因此对于 UART 通信接口,上位机必须先通过读操作来获取 Ready 状态后,才能进行第一次的命令下传。 @@ -68,7 +68,7 @@ 平台通信协议是指上位机和 芯片 之间的通信协议,即上位机如何控制模块,模块如何将信息反馈给上位机。通信协议分为下传协议和上传协议两部分。 -## 命令帧封装格式 +## 命令帧封装格式 上位机通过下传命令帧来控制 芯片。下传命令帧的格式定义就是下传协议。上位机发 @@ -78,7 +78,7 @@ | ---- | ---------- | ------ | | 0xFD | 0xXX,0xXX | Data | -### 命令帧定义 +### 命令帧定义 下传命令帧分为 2 部分:帧头,帧数据。其中帧头分为 2 部分:标记,帧长度。帧数据包含:命令字,命令参数(可选),命令数据。具体说明如下: @@ -88,7 +88,7 @@ | 标记 | 帧数据长度 | 命令字 | 命令参数 | 命令数据 | | “0xFD” (1 字节) | “0xHH,0xLL” (2 字节) | “命令” (1 字节) | “0xXX(可选)” (1 字节) | 数据 (N 字节) | -具体说明如下: +具体说明如下: | 名称 | 长度 | 说明 | | ---------- | ------ | -------------------------------------- | @@ -98,7 +98,7 @@ | 命令参数 | 1 字节 | 由一个字节表示,此参数可选 | | 命令数据 | N 字节 | 表示具体的文本数据 | -### 系统命令 +### 系统命令 #### 状态查询命令 @@ -109,7 +109,7 @@ | 命令帧格式结构 | 标记 | 帧数据长度 \| 命令字 | | | 0xFD | 0x00 \|0x01 \| 0x01 | - 休眠命令 + 休眠命令 | 名称 | 发送的数据 | 说明 | | -------------- | ---------- | :----------------------------------------------------------: | @@ -119,9 +119,9 @@ | 命令帧格式结构 | 标记 | 帧数据长度 \| 命令字 | | 0xFD | 0x00 | 0x01 \|0x01 \| 0x88 | -### 语音合成功能支持的控制命令 +### 语音合成功能支持的控制命令 -下传命令包是指上位机发送给 芯片 所有下传命令帧,如下: +下传命令包是指上位机发送给 芯片 所有下传命令帧,如下: | 命令 | 命令字 | 命令 命令字 说 | | ---------- | ------ | ------------------------------------------------------------ | @@ -135,11 +135,11 @@ | 睡眠命令 | 0x88 | 此命令会使芯片停止 TTS 合成,进入低功耗模式,此时状态为 idle,并返回 ok。低功耗模式下可以用查询命令来获取状态。任 何上位机命令都会使芯片退出低功耗模式(除了查询命令和睡 眠命令),但是不会执行命令。退出低功耗模式后,才能正常 的解析和执行命令 | | 唤醒命令 | 0xFF | 使芯片退出低功耗模式。接收到此命令后,芯片会退出低功耗 模式,并使 TTS 准备就绪,并返回 ok | -## 文本标注方法 +## 文本标注方法 为了确保 TTS 合成效果,以下提供一套标注方式,用户可以通过标注的方式,达到想要的合成效果,修复机器合成在自然度、流畅度方面的不足。 -文本控制标记的格式一般是半角中括号(即“[]”)内一个小写字母、一个阿拉伯数字。需要注意的是:文本标记符全部是半角,字母必须是小写的英文字母,不符合要求的不作为文本标记。 +文本控制标记的格式一般是半角中括号(即“[]”)内一个小写字母、一个阿拉伯数字。需要注意的是:文本标记符全部是半角,字母必须是小写的英文字母,不符合要求的不作为文本标记。 设置文本标记时,标记的位置很重要,除标记[n*]、[r*]、[o*]、[y*]外,其余在标记处会强制分句处理,因此在使用时,尽量将其放在句首位置。 @@ -254,6 +254,3 @@ void loop() { delay(3000); } ``` - - -