カテゴリー
ESP8266+ESP32+RISC-V Raspberry Pi

音声記号列を生成して AquesTalk Pico LSI に送信

「日本語を話します」のような漢字交じりの日本語から、「nihonngoo/hanasima’_su.」のような音声記号列(ローマ字)に Raspberry Pi を使って変換し、USBシリアルまたはWi-Fiで接続したAquesTalk Pico LSIに転送します。

日本語を話すのに便利な電子部品AquesTalk Pico LSIですが、自然な発音で出力するには、音声記号列を調整する必要がありました。また、インターネットなどから取得した文章を話すにはローマ字ベースの音声記号列への変換が必要です。

本稿では、音声記号列への変換に、㈱アクエストの AquesTalkPi に含まれる言語処理エンジン AqKanji2Koe を使用してカタカナの音声記号列を生成し、カタカナ→ローマ字変換を行ってから、AquesTalk Pico LSIに転送するプログラムを紹介します。

特長

  • 漢字交じりの日本語を AquesTalk Pico LSI 用の音声記号列に変換します
  • Raspberry Pi のUSBに接続したUSBシリアル変換アダプタ経由で転送します
  • Wi-Fi接続によるHTTP通信で転送することも出来ます

必要な機器(最小限)

  • Raspberry Pi
  • USBシリアル変換アダプタ
  • AquesTalk Pico LSI および周辺回路(電源,スピーカ,音声アンプなど)

インストール方法

㈱アクエストの AquesTalkPiと、筆者が作成したI/F部のプログラムaquestalk2pico.pyを使用します。詳細は、下記のGitHubページを参照ください。

aquestalkpi2pico | AquesTalkPiの言語処理エンジンAqKanji2Koeを使ってAquesTalk Pico LSIを動かす (bokunimo.com)
https://git.bokunimo.com/aquestalkpi2pico/

実行結果の一例

Raspberry Pi上のLXTerminalからプログラムaquestalk2pico.pyに、話したい文を付与して実行します。下記は、音声「日本語を入力すると話します」を出力するときの実行例です。

pi@raspberrypi:~/aquestalkpi2pico $ ./aquestalk2pico.py 日本語を入力すると話します ⏎  
Usage: ./aquestalk2pico.py 日本語を入力  
MAINPRO1, 開始  
subprocess = aquestalkpi/AquesTalkPi 日本語を入力すると話します | /usr/bin/aplay  
再生中 WAVE 'stdin' : Signed 16 bit Little Endian, レート 8000 Hz, モノラル  
MAINPRO1, 終了  
MAINPRO2, 開始  
subprocess = aquestalkpi/AquesTalkPi -t 日本語を入力すると話します|./aquestalk2pico.py SUBPROCESS  
Usage: ./aquestalk2pico.py 日本語を入力  
SUBPRO, this subprocess is called by a script  
ニホンゴオ/ニューリョ_クスル'ト/ハナシマ'_ス。  
nihonngoo/nyu-ryo_kusuru'to/hanasima'_su.  
200  
MAINPRO2, 終了  

USBシリアル接続したAquesTalk Pico LSIは、もちろんのこと、ESP32やESP8266マイコンを使えば、Wi-Fi経由で転送することも可能です。

下図は、ESP32マイコンを搭載したArduino互換マイコンボードでの実験例です。

ESP32マイコンを搭載したArduino互換マイコンボードにAquesTalk Picoを接続したときの一例。

また、ESP8226マイコン(ESP-WROOM-02)であれば、下図のようにブレッドボードで手軽に製作することが出来ます。

ブレッドボードで製作したWi-fiコンシェルジェ アナウンス担当

家じゅうに設置すれば、我が家だけのIoT対応・放送システムを構築することが出来るようになります。

by bokunimo.net

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es