New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

openjtalk

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

openjtalk

TTS using OpenJTalk

  • 0.0.2
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

node-openjtalk : Node.js TTS module using OpenJTalk

これは何?

フリーの日本語音声合成エンジン OpenJTalk を利用する Node.js モジュールです。

ライセンス

ライセンスは各ライブラリに準拠します。 私が書いた場所については MIT ライセンスとなります。

  • OpenJTalk : 修正BSDライセンス

動作環境

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

Package last updated on 19 Dec 2012

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc