アニメ K-05AI制作での運用
読み上げ台本(端末の音声合成)
別名: TTS台本、Web Speech API、音声合成
閲覧者の端末の音声合成に台詞と語りを読ませるため、時刻・話者・台詞・声の高さ・速さを書いた台本を作る技法。
どういう技法か
ブラウザの Web Speech API では、SpeechSynthesisUtterance に文章を渡して端末の音声合成で読ませることができる。声の高さ(pitch)は0〜2(既定1)、速さ(rate)は0.1〜10(既定1)で指定でき、声(voice)や言語(lang)も選べる。ただし使える声は OS とブラウザごとに異なり、声によって値の範囲がさらに狭まることがある。読み方の指定には W3C の SSML に読み替え(sub)などの要素があるが、ブラウザでの対応は限られる。
なぜ効くのか
閲覧者の端末で読むので、音声ファイルを配信する必要がなく、台本を直せばすぐに反映できる。一方で、声の質や速さが端末ごとに違うため、同じ台本でも読み終わる時刻がずれる。話者ごとに高さと速さを変えると、声色が似ていても誰が話しているか聞き分けやすくなる。難読語や固有名詞は誤読されやすく、誤読は物語への没入を大きく損なう。
やり方
- 台本の各行に、時刻・話者・台詞・pitch・rate を書く
- 話者ごとに pitch と rate の基準値を決める(例:語りは低め・ゆっくり)
- 難読語、固有名詞、読みが複数ある漢字は、かなで書く
- 一つの台詞は短めに分け、間は空白の時間で作る
- 複数の端末とブラウザで読ませ、最も遅い読み上げでも次の台詞と重ならないか確かめる
- 声が見つからない端末では、字幕だけで成立するようにしておく
使いどころ
音声ファイルを作らずに声を付けたい場合、台本を頻繁に直す場合、多言語で読み上げたい場合。通信量を抑えたいページや、閲覧者が読み上げを使うかどうかを自分で選べるようにしたい場合にも向く。
やりすぎ・失敗
端末の声に頼りきって、字幕なしで成立する作品にすると、声のない環境で伝わらない。pitch や rate を極端な値にすると、不自然で聞き取りにくい。漢字のまま書くと、人名や造語が誤読される。
AIアニメでの使い方
fantasist.org の narration.ja.json はこの方式で、ページの「読み上げ」ボタンを押すと字幕の時刻に合わせて端末が読む。台詞は字幕と同じ文面を基本とし、読みにくい語だけ読み上げ用の欄にかなで書く。登場人物は pitch を0.8〜1.3程度、rate を0.9〜1.2程度の範囲で差をつけ、語りは落ち着いた値にする。音声ファイルは作らない。
この技法を使ったAIアニメ
- 境界の従者 第1話「守られすぎた当主」読み上げ(14行)
使った理由: 端末の音声合成で台詞と語りを読むための台本を、従者と当主の声の高さ・速さを分けて書いた。
- 辺境の鑑定士 第1話「錆びた剣の値打ち」読み上げ(13行)
使った理由: 端末の音声合成で台詞と語りを読むための台本を、話者ごとの声の高さ・速さ、読みにくい語のかなとともに書いた。
出典
- SpeechSynthesisUtterance
lang・pitch・rate・voice・volume と start・end・boundary イベント
- SpeechSynthesisUtterance: pitch property
pitchは0〜2、既定1。声や端末でさらに制限される
- SpeechSynthesisUtterance: rate property
rateは0.1〜10、既定1。声によって範囲が狭まる
- Using the Web Speech API
使える声はOSとブラウザで異なり、voiceschangedを待つ必要
- Speech Synthesis Markup Language (SSML) Version 1.1
sub(読み替え)・phoneme・prosody・break の各要素