6
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

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

実際には、ESP8266 は喋らないので、タイトル詐欺です。

できること

繰り返しますが、ESP8266 は一言も喋りません。
Google 翻訳を使って、喋らせたいテキストから、音声ファイル (mp3) の URL を作るだけです。
作った URL から音声ファイルのダウンロードもしません。

要は、node.js 用モジュールの google-tts-api の再発明です。

音声ファイルのダウンロードや再生は、各自で実装いただければ。

インストール

やってみたかったので、Arduino IDE のライブラリ マネージャーに登録してみました。
ここに書かれたとおりに必要なファイル (library.properties とか) を作り、こんな感じArduino の公式リポジトリで issue を登録すると、翌日くらいにサクっと登録されます。

こんな簡単に公開できて、品質は全く問われないのは、ある意味怖いですね。

ライブラリ マネージャのおかげで、インストールは楽ちんです。
image.png

使い方

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

今後

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

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
6
Help us understand the problem. What are the problem?