Google 翻訳を使って、ESP8266 で TextToSpeech するライブラリ


実際には、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 (英語) として実行します。

今後

これが何に使えるか考えてます。