現在、TTSを使用するには2つの方法があります。
現在、アクエストークのような__ローカル(オンデマンド)__のTTSは利用できませんが、プルリクエストは歓迎します!
どちらの方法を選んでも、まず外部のTTSエンジンを準備する必要があります。
以下がテスト済みです:
それぞれの公式ドキュメントも参照してください。
key.json
をscripts
ディレクトリに保存します。$ tts-server --port 8080 --model_name tts_models/ja/kokoro/tacotron2-DDC
stackchan/manifest_local.json
のconfig.tts.host|port
にサーバー設定を保存します{
"config": {
"tts": {
"host": "your.tts.host.local",
"port": 8080
}
}
}
stackchan/manifest_local.json
のconfig.tts
にAPI KEYを保存します{
"config": {
"tts": {
"type": "elevenlabs",
"token": "YOUR_API_KEY"
},
}
}
以下のようなJavaScriptファイルに発話する文章を書き込みます(mods/monologue/speeches_monologue.js
などを参照)。
// speeches.js
export const speeches = {
niceToMeetYou: 'Hello. I am Stach-chan. Nice to meet you.',
hello: 'Hello World.',
konnichiwa: 'Konnichiwa.',
nihao: 'Nee hao.',
}
npm run generate-speech-[google | coqui | voicevox]を実行します |
Robot#say(sentense: string)
を呼び出しますimport { speeches } from 'speeches'
const keys = Object.keys(speeches)
export async function onRobotCreated(robot) {
await robot.say('hello')
await robot.say(keys[0] /* 'niceToMeetYou' */)
}
manifest_local.json
のconfig.tts.type
プロパティを使用するTTSエンジンに合わせて設定します。{
"config": {
"tts": {
"type": "remote",
"host": "your.tts.host.local",
"port": 8080
}
}
}
Robot#say(sentense: string)
を呼び出します。// ...
export async function onRobotCreated(robot) {
await robot.say('Now I can speak any sentense you want.')
}