stm32 IoT 開発ボード (3) - SYN6288 音声モジュールに基づく
1. SYN6288音声モジュールのデモ例
SYN6288音声モジュール
2. 概要
SYN6288-A 音声合成モジュールは、コストパフォーマンスに優れ、より自然な効果を実現したミドルエンドからハイエンドの音声合成技術です。SYN6288-A は、非同期シリアル ポートを介して合成するテキストを受信し、テキストからサウンドへの変換 (TTS) を実現します。
中国初の音声合成評価ボードであるSYN6288-Aの発売は、OSYNO6188-Aモジュールの優れた特徴である最小サイズ、シンプルなハードウェアインターフェース、高いコストパフォーマンスを継承し、さらにSYN6288-Aのテキスト認識をよりインテリジェントにしました。音声合成はもちろん、音声合成やインテリジェント認識の効果が大幅に向上しており、ミドルエンドからハイエンドアプリケーション向けの音声合成技術です。
2.1 製品の適用範囲
◆ 車載情報端末 音声放送、配車、カーナビゲーション
◆ バス停アナウンス装置、出席機 ◆
順番待ち呼出機、レジ料金自動販売機
◆ 自動販売機、案内機、POS機
◆ スマートトイ、スマート
ウォッチ ◆ 電動自転車
◆ 音声電子ブック、カラースクリーン絵本、音声電子辞書、音声電子ガイド
◆ショートメッセージ再生、ニュース再生
◆電子地図
- ハードウェアインターフェース:
ピン | 説明する |
---|---|
テキサス州 | 送信データピン PA3 |
RXD | 受信データピン PA2 |
忙しい | ビジー信号検出端子 PC5、H レベルがビジーを意味します |
3. 通信プロトコル
SYN6288 モジュールはシリアル ポート通信方式を採用しており、データ形式は次のとおりです。
デフォルトのボー レートは 9600、1 スタート ビット、8 データ ビット、1 ストップ ビット、パリティ ビットなし、ハードウェア フロー制御なしです。
3.1 コマンドフレームフォーマット
本チップは、コマンドフレームフォーマット「フレームヘッダFD+データエリア長+データエリア」フォーマットをサポートしています。(最大 206 バイト) ホスト コンピュータから SYN6288-A モジュールに送信されるすべてのコマンドとデータは、カプセル化され、「フレーム」の形式で送信される必要があります。
- データ長: コマンドワード + コマンドパラメータ + データ内容 + チェック値。
- チェック値: フレームヘッダーから始まる合計バイト数。
- 同じデータ フレーム内では、各バイトの直接送信間隔は 8ms を超えることはできず、データ フレームの直接送信間隔は 8ms を超える必要があります。
- デフォルトの初期ボーレートは 9600bps ですが、ボーレートを変更する必要がある場合は、ボーレートを設定するコマンド フレームを送信した後、16 ミリ秒間隔で別のコマンド フレームを送信する必要があります。
- 9600bps と 19200bps のボーレート通信伝送は両方とも非常に安定しています (チップがブロードキャストを合成しているかアイドル状態であるかに関係なく)。
- モジュールがテキストを合成しているときに、別の有効な合成コマンド フレームを受信すると、チップは現在合成中のテキストを直ちに停止し、代わりに新しく受信したテキストを合成します。
- 送信するテキストの長さは 200 バイト以下である必要があります。実際に送信された長さが 200 バイトを超える場合、チップは受信失敗を報告します。
3.2 制御コマンドの説明
3.3 データフレームの例
(1) 背景音なしの例
(2) 背景音ありの例
(3) 音量設定
(4) ボーレート設定
(5) 合成停止コマンド
(6) 合成再開コマンド
(7) 状態問い合わせコマンド
3.4 テキストコントロールタグ
- 例証します:
① 制御記号はすべて半角文字です。
② 制御フラグは音声合成コマンドの形式で送信する必要があり、特殊制御マークはテキストとして合成されます。つまり、合成コマンドは「フレームヘッダ + データ領域長 + 合成コマンドワード + 」の形式になります。テキストエンコード形式 + 特殊なコントロールマークテキスト」。
③ 制御フラグはグローバル制御フラグです。つまり、一度使用される限り、対応する [d] を使用して復元しない限り、チップに送信されるすべてのテキストはその制御下にあります。デフォルト設定。
④ チップの電源を切るかリセットすると、チップはすべてデフォルト値に戻り、元に設定されていたフラグは効果を失うため、リセットする必要があります。
⑤ 上記の認識可能な「制御マーク」に準拠していないもの、または形式が正しくないものは、通常の文字や数字として扱われます。
3.5 プロンプト効果音
このチップは 25 セグメントの音声プロンプトを提供し、用途に応じて情報プロンプトとして選択できます。次のリストは、現在のチップの組み込みプロンプト サウンドの名前とサウンド タイプです。
3.6 コードプロンプトのリスト
このチップは、公共情報放送の機会に広く使用できるプロンプトとして 23 曲のポリフォニック音楽を提供します。以下のリストは、現在チップに組み込まれているプロンプトの名前と再生時間です。
ポリフォニック着信音は、ポリフォニック着信音としてだけでなく、BGM素材としても利用できます
※プロンプトトーンの使用方法には特にこだわりはなく、通常のテキストを合成する合成コマンドと同様です。ただし、プロンプトサウンドの名前の前後に英語の文字がある場合は、チップが自動的に認識できるように、句読点、スペース、キャリッジリターンなどを使用して他の文字と区別する必要があることに注意してください。それ。たとえば、「sounda, hello!」というテキストを送信すると、sounda は対応する SMS プロンプト トーンを合成できますが、「soundahello!」というテキストを送信すると、sounda はプロンプト トーンを合成できませんが、「SOUNDA」という文字を直接読み上げます。 。
3.7 データフレームの組み合わせ例
/*
函数功能:SYN6288语音播报(单条语音不超过206字节)
形参:str --播放语音
cmd --命令(0~15)0为无背景,1~15为背景音
vol --音量(0~16)0为静音,16为最大音量
公司:北京万邦易嵌
作者:IT_阿水
*/
void SYN6288_SendData(uint8_t *str,int cmd,int vol)
{
uint8_t dat_xor=0;
uint8_t buffer[206];
uint16_t i=0;
char temp[10];
int j=0;
int str_len=0;
SYN6288_GetStat();
Delay_Ms(10);
/*音量设置*/
str_len=snprintf(temp,sizeof(temp),"[v%d]",vol&0x1f);
uint16_t len=strlen((char *)str);//发送是内容长度
str_len+=len;
str_len+=3;//加上命令字,命令参数和校验值
buffer[i]=0xFD;//帧头
dat_xor^=buffer[i++];
/*数据长度,两个字节,,高位在前*/
buffer[i]=(str_len>>8)&0xff;
dat_xor^=buffer[i++];
buffer[i]=str_len&0xff;
dat_xor^=buffer[i++];
buffer[i]=0x01;//语音合成播放命令
dat_xor^=buffer[i++];
buffer[i]=((cmd&0xf)<<3)|0;//命令参数
dat_xor^=buffer[i++];
j=0;
while(temp[j]!='\0')
{
buffer[i++]=temp[j];
dat_xor^=temp[j++];
}
for(j=0;j<len;j++)
{
buffer[i++]=str[j];
dat_xor^=str[j];
}
buffer[i++]=dat_xor;
USARTx_SendData(&huart2,buffer,i);
Delay_Ms(10);//8ms以上的间隔时间
}