2.1.1 • Published 1 year ago

openjtalk.js v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

OpenJTalk.js: A TTS module with OpenJTalk for Node.js

OpenJTalk.jsは、OpenJTalkのコマンドをNode.jsで扱いやすくするためのライブラリです。 Sorry, this readme is Japanese only. Please translation with your browser or Google Translation.

動作環境

  • MacOS or Linux
  • Node.js

インストール

$ npm i openjtalk.js

使い方

一番シンプルな例

//openjtalk.jsをインポート
const openjtalk = require('openjtalk.js')
//talk関数で音声の生成と再生を実行
openjtalk.talk("こんにちは、世界!")

声をカスタマイズする場合

const openjtalk = require('openjtalk.js')

const text = "こんにちは、これはOpenJTalkによって生成された音声です。"

//デフォルトで搭載されているHTSボイスファイルのパスを取得
const mei_normal = openjtalk.getSpeaker("mei_normal")

const option = {
    speaker : mei_normal, //ここにはHTSボイスファイルのパスを指定します
    formant: 0.55,
    pitch : 0,
    speed : 1,
    intonation: 1,
}

openjtalk.talk(text, option)
    .catch(console.error)

Readable型で受け取る

Discordボットで音声読み上げをしたい時などに利用できます

const openjtalk = require('openjtalk.js')
const fs = require('fs')
const path = require('path')
const { execFile } = require('child_process')

//ストリームの取得
const audioStream = openjtalk.stream("こんにちは、世界!")

//音声ファイルの生成
const wavPath = path.join(__dirname, "./test.wav")
const outFile = fs.createWriteStream(wavPath)
audioStream.pipe(outFile)

//音声ファイルの生成が終了したら実行
audioStream.on("close", ()=>{
    switch (process.platform) {
        case "darwin":
            playAndRefresh("afplay", wavPath)
            break
        case "linux":
            playAndRefresh("aplay", wavPath)
            break
        default:
            console.error("Playback on this OS is not supported.")
            break
    }
})

function playAndRefresh(com, path){
    execFile(com, [path],()=>{
        fs.unlinkSync(path)
    })
}

v1からv2への主な変更点

多くの破壊的な変更がありますが、内部処理に関してほとんど変更はありません。そのため、既にv1を使用しているプロジェクトを無理にv2へ移行する必要はありません。

  • OpenJTalkクラスを廃止し、代わりに関数をエクスポートする仕様になりました。
  • VoiceOptionクラスを廃止し、代わりにOJTVoiceOption型のオブジェクトを引数として受け取るようになりました。
  • オプションのvoiceQualityプロパティがformantに改名されました。
  • OJTVoiceOption型の引数が任意になりました。これに伴い、関数outFileの引数の順序が変更されています。
  • 関数executeを追加しました。OJTOption型の引数を渡すことで、様々な処理が可能になります。

License

MIT License (see LICENSE file).

2.1.1

1 year ago

2.1.0

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.3.7

2 years ago

1.3.6

2 years ago

1.4.4

2 years ago

1.3.5

2 years ago

1.4.3

2 years ago

1.3.4

2 years ago

1.4.2

2 years ago

1.3.3

2 years ago

1.4.1

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.3.8

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago