This package has been deprecated

Author message:

Deplicated

node-corevo-tts

0.0.1 • Public • Published

node-corevo-tts

node-corevo-tts は、corevo API(日本電信電話株式会社)の一つである音声合成 API を扱う node モジュールです。簡単なコードで、テキストを音声合成 API に投げ、合成された音声データを wav 形式のファイルに保存し再生することができます。

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

依存関係

  • Node.js 4 +
    • 現在のところ、node-corevo-tts は Node 4 でも動作しますが、Node 6 以上を利用されることを強く推奨します。node-corevo-tts は将来的には Node 4 をサポートしません。
  • node-wav-player
    • node-corevo-tts は、corevo 音声合成 API によって生成された音声データを受信後に自動再生する機能を有しています。もしこの機能を利用する場合には node-wav-player が必要です。

インストール

$ cd ~
$ npm install node-wav-player
$ npm install node-corevo-tts

API Key の発行

corevo API を利用するためには、corevo API ポータルから新規ユーザー登録を行い、ポータルにログイン後、API Key を発行する必要ががあります。

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

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


目次


クイックスタート

以下のコードは、指定のテキストを corevo API にリクエストし、corevo API から得られた音声データをファイルに保存したうえで、自動再生します。

const CorevoTTS = require('node-corevo-tts');
const tts = new CorevoTTS({
  apikey: '0123456789abcdefghijklmnopqrstuvwxyz'
});
 
tts.request({
  output: 'file',
  autoPlay: true,
  TextData: 'NTTグループのAI技術「corevo」を体験できます。',
}).then(() => {
  console.log('音声合成が成功しました。音声を再生しています。');
}).catch((error) => {
  console.log('[エラー] '+ error.message);
});

このコードの実行が成功すると、カレントディレクトリに音声ファイル speech.wav が生成され、自動的にその音声ファイルが再生されます。「NTTグループのAI技術「corevo」を体験できます。」と再生されるはずです。


CorevoTTS オブジェクト

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

const CorevoTTS = require('node-corevo-tts');

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

const tts = new CorevoTTS({
  apikey: '0123456789abcdefghijklmnopqrstuvwxyz'
});

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

request() メソッド

request() メソッドは、corevo 音声合成 API にリクエストを送り、結果を返します。このメソッドは Promise オブジェクトを返します。

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

プロパティ 必須 説明
TextData String 必須 音声データに変換したいテキスト。
output String 任意 結果を wav ファイルとして保存するなら "file"Buffer オブジェクトとして取得するなら "buffer"、Base64 形式の文字列として取得するなら "base64" を指定します。指定がなければ "base64" が指定されたものとして処理されます。
path String 任意 output に "file" を指定した場合に、保存する wav ファイルのパスを指定します。指定がなければ、"./speech.wav" が指定されたものとして処理されます。
autoPlay Boolean 任意 true を指定すると結果を wav ファイルに保存してから自動的に音声を再生します。指定がなければ false が指定されたものとして処理されます。このプロパティは、output"file" が指定された場合にのみ有効です。それ以外の場合は無視されます。
autoPlaySync Boolean 任意 autoPlaytrue の場合 (自動再生が有効) の場合に、このメソッドが返すタイミングを指定します。true を指定すると、音声ファイル再生後に返ります。false を指定すると、音声ファイル再生開始直後に返ります。指定がなければ false が指定されたものとして処理されます。

このメソッドのコールバック関数には、output に指定された値に応じた値が引き渡されます。output"file" または "buffer" の場合、コールバック関数には wav ファイルを表す Buffer オブジェクトが引き渡されます。output"base64" の場合、コールバック関数には wav ファイルを表す Base64 テキストデータが引き渡されます。

次のサンプルコードは、結果を Base64 で取得します。request() メソッドに output を指定していませんが、指定がなければ "base64" が指定されたものとして処理されます。

tts.request({
  TextData: 'こんにちわ。',
}).then((b64) => {
  console.log(b64);
}).catch((error) => {
  console.error(error);
});

上記コードが実行されると、次のような Base64 文字列が出力されます。

UklGRvTgAABXQVZFZm10IBIAAAABAAEAIlYAAESsAAACABAAAABkYXRhzuAA...

次の例は、corevo 音声合成 API がサポートするパラメータを指定しています。ここでは SpeakerID"000-00-0-004" を指定して、話者を「あおい(お姉さん)」にセットしています。corevo 音声合成 API からの応答があると、wav ファイルとして保存して、それを自動再生します。

tts.request({
  output: 'file',
  autoPlay: true,
  SpeakerID: '000-00-0-004',
  TextData: 'こんにちわ。',
}).then((buffer) => {
  console.log('完了');
}).catch((error) => {
  console.error(error);
});

request() メソッドは、SpeakerID のほか、corevo 音声合成 API がサポートするすべてのパラメータをサポートしています。corevo 音声合成 API がサポートするパラメータについては、corevo API ポータルで開示されている PDF ドキュメントを参照してください。


リリースノート

  • v0.0.1 (2018-01-03)
    • 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

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • futomi