TTSの誤読対策は「辞書に足せば直る」では終わらない

番組は2026年7月26日に stand.fm で開設し、9月2日に収録を無人化しました。台本は note 記事を元に AI が書き、声は本人の声から作った合成音声です。各回の冒頭で、合成音声であることを告知しています。

2026年10月17日時点で、台本の台帳は192本(AI 番組103本、EC 番組89本)、本文の合計は約26.9万字(268,839字)です。

先に結論を書きます。

  • 誤読対策は「原稿側で避ける層」と「辞書で直す層」の2層に分けると運用しやすい
  • 辞書は語を足すことより、足す前の衝突検査と、効かない語の棚卸しのほうが大事
  • 49語ある辞書のうち、耳で確かめたのは6語。残り43語は予防で、効果は確認できていない

誤読には直し方の違う3種類がある

  • 漢字の読みの揺れ(「下がる」を「したがる」と読む、など)
  • 数詞・助数詞の読みの揺れ(「一日」を「ついたち」と読む、など)
  • そもそも読ませたくない文字(URL、記号、英字略語、名字)

3つ目を辞書で直そうとすると、語数が際限なく増えます。URL や記号は、読ませない書き方にしたほうが確実です。一方、1つ目と2つ目は文脈で揺れる読みなので、原稿を工夫しても残ります。ここが辞書の出番です。

  • 原稿側:読ませたくないもの、読み間違いが致命的なものを、そもそも本文に出さない
  • 辞書側:本文に出さざるを得ない語の読みを固定する

第1層:原稿側で誤読の芽を摘む

台本は AI に書かせるので、書かせる段階のルールとして次を渡しています。

漢字の姓を本文に出さない

2026年7月16日、スライドの音声を確認していたときに、名字の誤読を人が耳で見つけました。名字は文脈から読みを推測できない語なので、辞書で直すより「名乗らない」と決めるほうが確実でした。以後、台本の本文に漢字の姓は出していません。

英字略語は読ませたい形で書く

  • Claude は「クロード」と書く
  • ChatGPT は「チャットジーピーティー」と書く
  • GAS は略語のまま読ませず、「スプレッドシートで動く仕組み」と言い換える

数字は口で言う形に開く

たとえば「7モール」は「ななつのモール」と書きます。数字のまま渡すと、どう読むかを音声合成側に委ねることになるためです。

読み上げに向かない記号を入れない

URL、記号、絵文字、見出し、箇条書きの記号、強調の記号は台本に入れません。読み上げられてしまうか、無視されて意味が壊れるかのどちらかだからです。

保存前に機械検査で落とす

規約を渡すだけでは、守られたかどうかが分かりません。そこで台本を保存する前に、URL、記号(★、→、【】など)、漢字の姓、強調の記号を正規表現で検出し、1つでもあれば保存させない検査を置いています。

送信前の整形も事故の原因になる

使っている制作ツールは、文章を送る前に次の整形をします。

  1. 改行を消す
  2. 「。」「!」「?」で文に切る
  3. 各文に話者のラベルを付ける

ここに落とし穴がありました。[..]、【..】、行頭の「xxx: 」という形があると、複数の話者がいると誤って判定されます。EC 番組の第4〜33回は、旧形式の台本の頭書き(「想定尺:」など)がちょうどこの形でした。そのため、頭書きを先に落としてから送る処理を入れています。

これは読み間違いではなく話者の誤判定ですが、原稿の形式が音声化の結果を左右する例です。

第2層:読み方辞書は置き場を1つにする

原稿側で避けられない語は、読み方辞書で読みを固定します。最初に決めたのは、辞書の置き場を1つにすることでした。

辞書は1つのテキストファイルで、1行1語の「単語/よみ」形式です。収録のたびに、このファイルの全文を API へ渡します。

制作ツールの画面にも辞書欄がありますが、そこに手で足しても API 経由の収録には反映されません。画面で足して安心し、無人の収録では効いていない、という状態が起こり得ます。そのため、正はファイル1つと決め、画面の辞書欄は使っていません。

置き場が1つだと、次のことがしやすくなります。

  • 追加や削除を差分として履歴に残せる
  • 全台本に辞書を当てる検査コマンドを1本書ける
  • 「どこに書いたか」を探す手間が起きない

辞書49語の内訳と、耳で確かめたのは6語だけという事実

現在の辞書は49語です。それぞれの語をどういう根拠で入れたかを、数え直して分類しました。

  • 実際の音声で誤読を確認:1語(下がる(「したがる」と読まれた))
  • 既存回を再生成した試し音源を人が聴いて確認:5語(上がっ・一つ・二つ・十分です・で十分)
  • 同じ型(送り仮名つきの動詞など)の予防:17語(下がっ・下がり・下げ・上がる・上がり・他の・他に・空い・空く・開い・開く・行ったり来たり・元通り・後回し・この後・見方・側)
  • 数詞・助数詞:17語(一日・一人・二人・三つ・一枠・一行・一桁・何度・何回・何件・何人・何本・何個・何割・割強・割弱・十分だ)
  • 業務語(音読みが揺れる語):9語(月次・日次・週次・最安値・値上げ・値下げ・値引き・稼ぎ頭・頭打ち)

合計は 1+5+17+17+9=49 です。耳で確かめたのは6語だけで、残りの43語は実測していない予防です。

数詞・助数詞を入れた狙い

  • 「なんど」を「なにど」と読ませない
  • 「いちにち」を「ついたち」と読ませない
  • 「ひとつ」を「いちつ」と読ませない

業務語を入れた狙い

月次・日次・週次・最安値・値上げ・値下げ・値引き・稼ぎ頭・頭打ちは、音読みが揺れやすい語です。EC 運営や業務効率化の話では頻繁に出るため、先に固定しました。

予防で入れた語の扱い

送り仮名つき動詞の17語は、「下がる」が実際に誤読されたことを受けて、同じ型で台本に実在する語を入れたものです。ただし、効果が出ているかは確かめていません。予防の語は、耳で確かめた語と区別して記録しています。

辞書に語を足す前の衝突検査と、効かない語の棚卸し

辞書で事故が起きやすいのは、語を足すときです。

この辞書は、部分一致で置き換わる前提で運用しています。これは制作ツールの仕様で確認したものではなく、安全側に倒した運用上の前提です。部分一致であれば、別の語の一部になる語を入れると、意図しない箇所まで置き換わってしまいます。

入れなかった語、入れた語

「一文/いちぶん」は入れていません。台本に「一文」は44回出てきますが、「一文字」も6回あり、「一文字」の読みまで巻き込みかねないためです。

反対に「側/がわ」は入れました。現在の台本では「側」が135回(「楽天側」「作る側」など)出てくる一方、「側面」は0回だったからです。「側面」を含む台本が1本でも入れば、この語は見直しが必要になります。

追加前のルール

  1. 候補の語で全台本を検索し、その語を含む別の語がいくつあるかを数える
  2. 衝突が無ければ入れる。衝突があれば入れない
  3. 入れた後も、新しい台本が衝突を作っていないかを、検査コマンドで確かめられるようにしておく

検査コマンドを192本に当てた結果(2026-10-17)

辞書の各語が全台本に何回出てくるか、語どうしが含み合っていないかを数える検査コマンドを用意しています。192本に当てた結果、出現回数の上位10語は次のとおりでした。

  • 一つ:459回
  • 三つ:296回
  • 二つ:250回
  • 側:135回
  • 一行:67回
  • 開い:58回
  • 何度:50回
  • 見方:48回
  • 値引き:40回
  • 一日:31回

上位3つは「一つ」「二つ」「三つ」です。数字を口で言う形に開く原稿側の規約があるぶん、数詞は台本に多く出てきます。誤読したときに影響が大きいのは、こうした頻出語です。

効かない語

台本に1回も出てこない語が2つありました。「割弱」と「週次」です。

台本に出ない語は、辞書にあっても何も起きません。ただ、辞書は「何を守っているか」が読める状態であることに価値があります。効かない語が混ざると、見直すたびに「これは何のために入れたのか」を調べ直すことになります。この2語は記載時点でまだ辞書に残っており、棚卸しの候補です。

語どうしの包含

語どうしが含み合う組も1つ見つかりました。「下げ」は「値下げ」の一部です。検査コマンドは、この組について「適用順で読みが変わり得る」と警告を出します。どちらが先に適用されるかは制作ツールの仕様で確認しておらず、この組はまだ解消していません。

分かっていないことと、明日からできる手順

この運用で分かっていないこと

読み方辞書を過信しないために、まだ分かっていないことを書いておきます。

  • 予防で入れた43語は、効果を確かめていません。
  • 収録後の音声を文字起こしして台本と照合する自動検査は、入れていません。誤読の発見は、今も人の耳に頼っています。
  • 部分一致で置き換わるか、どの順で適用されるかは、制作ツールの仕様を確認していません。運用上の前提として安全側に倒しているだけです。
  • 配信先の公開ページに再生数が出ないため、誤読が聴取に与えた影響は測れていません。

つまりこの運用は「やっておいたほうが事故が減るはず」という判断であり、効果を数字で示したものではありません。

明日からできる手順

AI で台本を量産し、合成音声で無人収録している場合の手順です。

  1. 辞書の置き場を1つに決める。画面の辞書欄に手で足す運用はやめ、ファイル1つを正にする
  2. 本文に出さないものを原稿のルールにする。URL、記号、絵文字、強調、英字略語、数字の書き方、名字
  3. 保存前の機械検査を置く。ルールを渡すだけで済ませず、正規表現で検出して止める
  4. 既存の1回分を再生成して聴く。誤読した語が辞書の最初の候補。耳で確かめた語は、根拠つきとして区別して記録する
  5. 語を足す前に全台本を検索して衝突を数える。別の語の一部になる語は入れない
  6. 検査コマンドで出現回数・効かない語・包含を見る。効かない語は棚卸しの候補にする
  7. 確かめていない語は「未確認」と書いておく。予防の語と実測の語を混ぜない

最初の一歩は、1回分を聴いて確かめることです。耳で確かめた語が増えるほど、辞書は「想像で足した語の集まり」から「根拠のある語の集まり」に変わっていきます。