This package has been deprecated

Author message:

Deplicated

node-corevo-tts-cast

0.0.3 • Public • Published

node-corevo-tts-cast

node-corevo-tts-cast は、Google Home や Android TV など Google Cast (Chromecast built-in) 対応デバイスに、指定のテキストをしゃべらせます。Google Cast 対応デバイスは自動的に発見することができますが、キーワードや IP アドレスを指定することもできます。音声合成は、corevo API(日本電信電話株式会社)の音声合成 API を使います。

※ 本モジュールは 日本電信電話株式会社 公式の node モジュールではありません。

依存関係

  • Node.js >= 4
    • 現在のところ、node-corevo-tts は Node 4 でも動作しますが、Node 6 以上を利用されることを強く推奨します。node-corevo-tts は将来的には Node 4 をサポートしません。
  • castv2-client
  • node-dns-sd
  • node-corevo-tts

インストール

$ cd ~
$ npm install castv2-client
$ npm install node-dns-sd
$ npm install node-corevo-tts
$ npm install node-corevo-tts-cast

corevo 音声合成 API の API Key の発行

本モジュールは音声合成に NTT が提供する corevo 音声合成 API を使います。corevo 音声合成 API を利用するためには、corevo API ポータルから新規ユーザー登録を行い、ポータルにログイン後、API Key を発行する必要ががあります。

API Key はアプリケーションごとに発行する必要があります。node-corevo-tts を利用するプログラムに割り当てる API Key を事前に発行してください。

API Key 発行申請の際に、プラットフォームを選択する必要がありますが、選択肢は Android, iOS, Hybrid のいずれかです。node-corevo-tts を利用するプログラムの場合は、どれを選択しても構いません。


目次


クイックスタート

以下のコードは、ローカルネットワークに存在する Google Cast 対応デバイスを自動的に発見して、そのデバイスに「こんにちわ。」としゃべらせます。

const mCorevoTTSCast = require('node-corevo-tts-cast');
 
let cast = new mCorevoTTSCast({
  apikey: '0123456789abcdefghijklmnopqrstuvwxyz'
});
 
cast.speech({
  text: 'こんにちわ。'
}).then(() =>{
  console.log('成功。');
}).catch((error) => {
  console.error(error);
});

CorevoTTSCast オブジェクト

node-corevo-tts-cast を利用するためには、次の通り、node-corevo-tts-cast モジュールをロードします:

const CorevoTTSCast = require('node-corevo-tts-cast');

上記のコードから、CorevoTTSCast コンストラクタが得られます。次の通り、その CorevoTTSCast コンストラクタから CorevoTTSCast オブジェクトを生成しなければいけません。コンストラクタには、引数として、apikey に API Key をセットします。

const cast = new CorevoTTSCast({
  apikey: '0123456789abcdefghijklmnopqrstuvwxyz'
});

上記コードでは、変数 castCorevoTTSCast オブジェクトです。CorevoTTSCast オブジェクトは、以降のセクションで説明するとおり、speech() メソッドを持っています。

speech() メソッド

speech() メソッドは、ローカルネットワークから Google Cast 対応デバイスを探し、corevo 音声合成 API にリクエストを送り、音声合成結果を発見した Google Cast 対応デバイスにキャストします。このメソッドは Promise オブジェクトを返します。

このメソッドには、次のプロパティを含んだハッシュオブジェクトを与えます:

プロパティ 必須 説明
text String 必須 Google Cast 対応デバイスにしゃべらせたいテキスト。
name String 任意 Google Cast 対応デバイスの識別するためのキーワード。
address String 任意 Google Cast 対応デバイスの IP アドレス。指定できるアドレスは IPv4 のみです。
title String 任意 タイトルを指定すると、対象デバイスが Android TV なら、そのタイトルを画面に表示します。
image String 任意 画像ファイルのパス、または、URL を指定すると、対象デバイスが Android TV なら、その画像を画面に表示します。
port Integer 任意 Google Cast 対応デバイスから待ち受ける HTTP ポート番号。指定がなければ 8080 がセットされます。
options Object 任意 NTT corevo 音声合成 API のパラメータ。
delay Integer 任意 再生遅延 (ミリ秒)。デフォルト値は 800 ミリ秒。もし再生開始時の音声が途切れるようなら、この値を少し長めに設定してください。

名前指定

speech() メソッドが呼び出されると、本モジュールは Google Cast 対応デバイスを発見しようとします。デバイス発見には mDNS/DNS-SD を使います。もし addressname も指定がなければ、最初に発見した Google Cast 対応デバイスが採用されます。

もしローカルネットワーク内に複数の Google Cast 対応デバイスが存在する場合は、name を使うと良いでしょう。name を指定すると、mDNS/DNS-SD によって得られたデバイス情報に name の文字列が含まれていれば、そのデバイスが採用されます。例えば、name には、デバイスのモデル名を指定します。SONY BRAVIA Android TV モデルなら "BRAVIA" を、SHARP AQUOS Android TV モデルなら "AQUOS" を、Google Home なら "Google Home" を、Chromecast なら "Chromecast" を指定します。

cast.speech({
  text: 'こんにちわ。',
  name: 'BRAVIA'
});

Google Home や Chromecast の場合は、スマートフォンの Google Home アプリからデバイスの名前 (Family name) を設定することができますが、その名前を name に指定することも可能です。

cast.speech({
  text: 'こんにちわ。',
  name: '仕事部屋のGoogle Home'
});

Windows の場合、mDNS/DNS-SD によるデバイス発見が成功しないことが多いため、IP アドレス指定をご利用されることをお勧めします。

IP アドレス指定

speech() メソッドはパラメータ address に IPv4 アドレスが指定されると、mDNS/DNS-SD によるデバイス発見処理を行わず、指定の IP アドレスに直接アクセスします。

cast.speech({
  text: 'こんにちわ。',
  address: '192.168.10.23'
});

もしデバイスの IP アドレスが事前に分かっている場合は、パフォーマンスの観点からも address に IP アドレスを指定することをお勧めします。

HTTP ポート番号の変更

speech() メソッドが呼び出されると、対象の Google Cast 対応デバイスを発見後、NTT corevo 音声合成 API を使って音声データを取得します。そして、Google Cast プロトコルを使って、該当のデバイスに音声データをキャストします。その際、該当のデバイスから本モジュール実行コンピューターに対して、HTTP リクエストが送られてきます。そのため、本モジュールは一時的に HTTP サーバーを起動します。

デフォルトでは HTTP ポート番号は 8080 です。もしご利用のコンピューターにて TCP ポート番号 8080 の受付を許可していない場合は、許可してください。もしこのポート番号を変更したい場合は、speech() メソッドに port パラメータを指定します。

cast.speech({
  text: 'こんにちわ。',
  port: 10080
});

音声合成パラメータ

NTT corevo 音声合成 API は、さまざまな音声合成パラメータをサポートしています。speech() メソッドの options にパラメータをセットすると、NTT corevo 音声合成 API にそれらを投げます。

cast.speech({
  text: 'こんにちわ。',
  options: {
    SpeakerID: '000-00-0-004',
    SpeechRate: 1.2
  }
});

上記コードでは、SpeakerID"000-00-0-004" を指定して、話者を「あおい(お姉さん)」にしています。また、SpeechRate1.2 を指定して、少しだけ話速を上げています。corevo 音声合成 API がサポートするパラメータについては、corevo API ポータルで開示されている PDF ドキュメントを参照してください。


リリースノート

  • v0.0.3 (2018-05-18)

    • speech() メソッドのパラメータとして、新たに delay プロパティを設けた。デフォルト値を 800 ミリ秒にすることで、音声再生時の音声の途切れを回避した。
  • v0.0.2 (2018-01-07)

    • First public release

リファレンス


ライセンス

The MIT License (MIT)

Copyright (c) 2018 Futomi Hatano

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Package Sidebar

Install

npm i node-corevo-tts-cast

Weekly Downloads

1

Version

0.0.3

License

MIT

Unpacked Size

26 kB

Total Files

4

Last publish

Collaborators

  • futomi