実際には、ESP8266 は喋らないので、タイトル詐欺です。
できること
繰り返しますが、ESP8266 は一言も喋りません。
Google 翻訳を使って、喋らせたいテキストから、音声ファイル (mp3) の URL を作るだけです。
作った URL から音声ファイルのダウンロードもしません。
要は、node.js 用モジュールの google-tts-api の再発明です。
音声ファイルのダウンロードや再生は、各自で実装いただければ。
インストール
やってみたかったので、Arduino IDE のライブラリ マネージャーに登録してみました。
**ここに書かれたとおりに必要なファイル (library.properties とか) を作り、こんな感じ**に **Arduino の公式リポジトリ**で issue を登録すると、翌日くらいにサクっと登録されます。
こんな簡単に公開できて、品質は全く問われないのは、ある意味怖いですね。
ライブラリ マネージャのおかげで、インストールは楽ちんです。
使い方
#include <google-tts.h>
#include <ESP8266WiFi.h>
const char* ssid = "<REPLASE_YOUR_WIFI_SSID>";
const char* password = "<REPLASE_YOUR_WIFI_PASSWORD>";
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
TTS tts;
Serial.println(tts.getSpeechUrl("こんにちは、世界!", "ja"));
Serial.println(tts.getSpeechUrl("Hello, World!"));
}
void loop() {
// put your main code here, to run repeatedly:
}
メソッドは、getSpeechUrl
のみで、第一引数に音声にしたいテキスト、第二引数に言語情報を入れるだけです。日本語の場合、ja
を指定してください。
第二引数を省略すると、en
(英語) として実行します。
今後
これが何に使えるか考えてます。