Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
node-corevo-tts
Advanced tools
node-corevo-tts は、corevo API(日本電信電話株式会社)の一つである音声合成 API を扱う node モジュールです。簡単なコードで、テキストを音声合成 API に投げ、合成された音声データを wav 形式のファイルに保存し再生することができます。
node-corevo-tts は、corevo API(日本電信電話株式会社)の一つである音声合成 API を扱う node モジュールです。簡単なコードで、テキストを音声合成 API に投げ、合成された音声データを wav 形式のファイルに保存し再生することができます。
※ 本モジュールは 日本電信電話株式会社 公式の node モジュールではありません。
$ cd ~
$ npm install node-wav-player
$ npm install node-corevo-tts
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'
});
上記コードでは、変数 tts
が CorevoTTS
オブジェクトです。CorevoTTS
オブジェクトは、以降のセクションで説明するとおり、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 | 任意 | autoPlay が true の場合 (自動再生が有効) の場合に、このメソッドが返すタイミングを指定します。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 ドキュメントを参照してください。
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.
FAQs
node-corevo-tts は、corevo API(日本電信電話株式会社)の一つである音声合成 API を扱う node モジュールです。簡単なコードで、テキストを音声合成 API に投げ、合成された音声データを wav 形式のファイルに保存し再生することができます。
The npm package node-corevo-tts receives a total of 0 weekly downloads. As such, node-corevo-tts popularity was classified as not popular.
We found that node-corevo-tts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.