気の向くままに辿るIT/ICT/IoT
webzoit.net
IoT・電子工作

しゃべるArduino音声合成・再生デモ

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
Arduinoって?

しゃべるArduino音声合成・再生デモ

しゃべるArduino音声合成・再生デモ

Arduinoとスピーカーで音声合成回路
2018/09/10

 Arduinoで人間の音声を人工的に作り出す音声合成/Speech Synthesis(スピーカーやヘッドホン、圧電ブザーなどを介して、しゃべるArduino)のデモンストレーションをしてみるページ。

 音声合成の歴史を遡ると実に1000年以上前から試みられている模様だが、近年で言えば、初音ミクなる音声合成ボーカル音源・キャラクターが有名だった模様も、なぜ、そこまで盛り上がることができるのかよくわからなかった。

 そんな自身が、遅まきながら、今回、音声合成に興味を持つに至ったのは、先程、ふと普段ほとんど見ることのないFirefoxの拡張機能を眺めてみたことだった。

 そこで[Read Aloud: A Text to Speech Voice Reader]なる音声読み上げ機能に目が止まり、インストールしてみたものの、機能させることができず、Windowsには、より簡単なソフトがある模様も、自身のメインOS Debian(Linux)でも使えるパッケージソフトウェアがあるはずと探した結果、espeak、open-jtalkなどにたどり着き、後者にmei(女性の音声)も追加するなどして音声再生してみたところ、前者は英語含む、複数の言語、後者は日本語で単語だけでなく、テキストファイルなどの各種ファイルをも男性や女性の声で、しかも、かなり自然に読み上げてくれ、かなり感動...、その感動冷めやらぬまま、もしかしたらこれってArduinoやESP8266でもできるんじゃ?と思った次第。

Talkieライブラリ

 今回は、adafruit/Talkieライブラリを使わせて頂き、そのサンプルを実行してみただけ。

 ArduinoやESPモジュールだとTalkieライブラリなるものが、音声合成ライブラリにあたるらしいことがわかり、当初、違うTalkieライブラリで試したものの、古かった為、その後のArduino IDEの仕様とのミスマッチがあり、FMmelodyの時と同様の修正で良いのだろうが、面倒だなと思った矢先、これを発見、あっさり、スムースに実行できたという経緯がある。

 日本語再生までいけるのかについては、探求していないが、自身でオリジナルの音声データを作るということについては、Arduinoにしゃべらせてみたトレース&PCMデータの作り方を始め、情報は豊富なようだ。

 => [追記]ArduinoでWAV/MP3オリジナル日本語音声の発話も簡単にできた。

必要なもの・今回使ったもの

 今回使ったスピーカーは、100均セリアで買った1つでモノラル、2つでステレオになるというもの、USBケーブルもセリア、Nano互換機は、Amazonマーケットプレイス直で買ったもので全部で500〜600円といったところかと。

 スピーカーを使う場合、スピーカーにつながっているステレオ(ミニ)プラグの根元にマイナス、他の極にプラスをつなげば、音を出す準備は完了。(電源を要するものは電源も入れる。)

 出力については、スピーカーでなくとも、ヘッドフォンやパッシブブザーでもいけるが、圧電ブザーを使う場合は、ワニグチクリップは不要な代わりに別途ブレッドボードが必要となったり、スケッチに該当するプログラム行の追記が必要になる。

 また、ヘッドホンだと聴こえすぎるほど大きく、スピーカーは、少し小さいが聴こえるには聴こえる、一方、ブザーだと耳を当てないと聴こえないほど、ちょっと音が小さいのでトランジスタを噛ませた方がよいかもしれない。

EasyWordMall Arduino UNO R3互換ボード(USBケーブル付属)

EasyWordMall Arduino Pro Mini互換ボード Atmega328 5V 16MHz

Rasbeeオリジナル FT232RL互換 3.3V/5V FTDI/USB/TTL変換アダプタ

KKHMF Arduino Nano Ver 3.0互換ボード ATmega328P CH340G 5V 16MHz

HiLetgo Mini USB Nano V3.0 ATmega328P CH340G 5V 16MHz マイクロコントローラーボード Arduinoと互換 改良版(5個セット)

iBUFFALO USB2.0ケーブル (A to miniB) スリムタイプ ホワイト 1m BSUAMNSM210WH

iBUFFALO PC用スピーカー USB電源 ブラック BSSP29UBK

パイオニア Pioneer SE-A611 ヘッドホン オープン型/オンイヤー ブラック SE-A611 【国内正規品】

EasyWordMall パッシブブザー インピーダンス 16Ohm AC 2KHZ 3V 5V 12V 10個

クリップ,SODIAL(R) ワニグチクリップ 黒/赤 計100個

uxcell ワニグチクリップワイヤー ケーブル テストリード 45cm 10個

Rasbee 400穴 ブレッドボード 8.5*5.5cm 1個

HiLetgo 400穴 ブレッドボード 8.5*5.5cm 5個セット

HiLetgo 400穴 ブレッドボード 8.5*5.5cm 10個セット

Rasbee SY-170 ミニブレッドボード カラフルブレッドボード 5個

HiLetgo ジャンパーワイヤー(オス-オス) 20cmx40本 5セット

Rasbee ジャンパーワイヤー(オス-オス) 各種長さx65本

スケッチ・回路

 スケッチは、Talkieライブラリのサンプル、自身は、とりあえず、Vocab_US_Clockを試してみたところ、女性らしい声で[Good Morning, the time is eleven thirty six AM.]と再生された。

 回路というほどでもないが、配線は、ArduinoボードのD3/GNDをスピーカーやパッシブブザーのプラス/マイナスにそれぞれ繋ぐ。

 ざっと見たところ、GPIOピンの指定はないのだが、理由までは確認しなかったものの、D3でないと機能しないという情報があり、それに沿ってみた。

 接続後、音が出ない場合や再度聴きたい場合には、Arduinoボードのリセットボタンを押せば、再生される。

 とにもかくにもArduinoとスピーカー(や圧電ブザー)だけでしゃべらせることができるとは驚き。

ウェブ造ホーム前へ次へ