33.【音声生成AI設計】割り込みで音声AIは壊れる|Speaking中に人が喋ったら何が起きるか

tags: [“音声生成AI”, “FSM”, “割り込み”, “設計思想”, “制御構造”]


✋【音声生成AI設計】割り込みで音声AIは壊れる

―― 🔥 Speaking中に人が喋ったら何が起きるか

音声AIが一番派手に壊れる瞬間は、ここだ。

🔊 AIが喋っている最中に
👤 人が喋り始める

多くの音声AIデモは、
この瞬間を意図的に避けている。

理由は単純で、
設計していないから


🎯 本記事の目的

👉 会話らしさはまだ要らない。
まずは壊れないこと。


❌ よくある破綻パターン

① 🔊 喋り続ける

② 🧊 無音フリーズ

③ 🤯 二重状態

👉 すべて 状態遷移未定義


🧠 割り込みは「異常」ではない

重要な視点:

割り込みは通常動作である

人間同士の会話でも、

は常に起きている。

音声AIだけ
「割り込まれない前提」で作るのは破綻必至。


🧩 FSMに割り込み状態を追加する

前回(32)のFSMに、
割り込み専用状態を追加する。

📦 States(追加)


🔄 割り込み込みFSM全体像

💤 Idle
  │
  ▼
🔊 Speaking
  │ (人の音声検出)
  ▼
✋ Interrupted
  │
  ├──▶ 👂 Listening   (話を聞く)
  └──▶ 💤 Idle        (中断して終了)

🔑 ポイントは:


⏱ 割り込み判定は「賢く」やらない

ここでやりがちな失敗:

正解は:

🎚 物理量で即断する

例:

👉 意味理解は後回し


🔊 Speaking中にやるべきこと

割り込みが検出された瞬間:

  1. 🔇 TTS を即停止
  2. 🧩 FSM を Interrupted に遷移
  3. 🎤 出力と入力を分離
  4. 👂 Listening へ移行

この順番を崩すと壊れる。


🚫 割り込み処理でやってはいけないこと

👉 それは 制御ではなく演出


🧠 割り込みFSMの最大メリット

🎯 これだけで、
実用音声AIの 合格ライン に入る。


✋ 割り込みデモ

Speaking 中に割り込みが発生した場合の挙動を、
FSMとして確認できる音声デモを用意しました。

▶ デモ
https://samizo-aitl.github.io/qiita-articles/demos/audio-fsm-interrupt/

本デモでは、

を確認できます。


📌 まとめ


🔜 次の記事(34)

次でようやく
LLMが戻ってくる


(GitHub上のMarkdownを正本とし、Qiitaには抜粋・調整して投稿)