
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
フリーの日本語音声合成エンジン OpenJTalk を利用する Node.js モジュールです。
ライセンスは各ライブラリに準拠します。 私が書いた場所については MIT ライセンスとなります。
MacOS X 10.8.2 および Ubuntu 10.04 で動作を確認しています。
$ cd YOUR_NODE_PROJECT_DIR
$ git clone https://github.com/hecomi/node-openjtalk
$ mkdir node_modules
$ mv node-openjtalk node_modules/openjtalk
$ cd node_modules/openjtalk
$ npm install
$ npm test
音声ファイルを含んだディレクトリ、辞書ファイルを含んだディレクトリ、OpenJTalk の設定オプションを引数に渡せます。 引数は省略することもできます。省略した場合は MMDAgent のメイちゃんの声をデフォルトとして喋ります。 音声ファイルを複数用意すれば以下のように喋り分け出来ます。
var OpenJTalk = require('openjtalk');
var mei1 = new OpenJTalk(); // mei_normal を使用
var mei2 = new OpenJTalk({voice: './voice/mei_sad'});
var mei3 = new OpenJTalk({voice: './voice/mei_happy'});
mei1.talk('これはテストです'); // コールバックは省略できる
setTimeout(function() {
mei2.talk('喋り終わり次第コールバックを呼びます', function(err) {
if (err) console.log('err', err);
console.log('コールバックを呼ぶ');
mei3.talk('エラーが発生したらコールバックの引数からチェックできます', function(err) {
if (err) console.log('err', err);
else mei1.talk('エラーは発生しませんでした');
});
});
}, 2000);
同期して喋らせたい場合は、async 等のモジュールを使えば綺麗に書けると思います。 設定値を変える場合は以下のようにします。
var OpenJTalk = require('./openjtalk');
var mei = new OpenJTalk({
voice : './voice/mei_normal',
dic : './dic/open_jtalk_dic_utf_8-1.05',
options : {
sampling_rate : 48000,
stage : 0,
audio_buff_size : 48000,
alpha : 0.5,
beta : 0.8,
uv_threshold : 0.5,
gv_weight_mgc : 1.0,
gv_weight_lf0 : 1.0,
gv_weight_lpf : 1.0
}
});
// 喋る速度を調整することもできます
mei.talk('すっごい速いです', 100, function(err) {
mei.talk('普通くらいです', 200, function(err) {
mei.talk('ゆっくり喋るよ', 300);
});
});
options の各設定値は省略可能です。ちなみに上記がデフォルト値になります。
処理的には、OpenJTalk で wav を生成、それを afplay/aplay で再生、喋り終わったら削除、としているので、しゃべっている途中に中断すると wav ファイルが実行しているディレクトリに残ります。手動で削除して下さい。
その他詳細は Twitter:@hecomi へご質問いただくか、http://d.hatena.ne.jp/hecomi/ をご参照下さい。
FAQs
TTS using OpenJTalk
We found that openjtalk 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
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.