Easy Turn JA
日本語音声を入力すると、文字起こしと同時に Complete / Incomplete / Backchannel / Wait の4状態でターン判定を返すモデルです。Easy Turn(arXiv:2509.23938、中国語・英語)の公式 checkpoint を日本語に継続適応させたものです。
A Japanese 4-state turn-detection model (Complete / Incomplete / Backchannel / Wait) that also transcribes. Continued adaptation of the official Easy Turn checkpoint, which covers Chinese and English only. Read the "Limitations" section before using it: this model does not beat a well-tuned VAD at end-of-turn detection itself. Its measured advantage is that it does not interrupt backchannels.
位置づけ
VAD を置き換えるものではなく、VAD の後段に置く再判定器です。VAD が「音が止まった」と判定した区間について、その止まり方が4状態のどれなのかを判定し直します。
| 状態 | 意味 | システムの取るべき動作 |
|---|---|---|
| Complete | 話し終わった | 応答を開始する |
| Incomplete | まだ続く | 黙って聞き続ける |
| Backchannel | 相槌(「うん」「へー」) | 自分の発話を止めない |
| Wait | 「ちょっと待ってください」 | 長めに待つ |
構成は Whisper-Medium の音声 Encoder + 3層Conv・4層Transformer の Adapter + Qwen2.5-0.5B-Instruct、約850M パラメータです。公式実装(WeNet ベース)をそのまま使います。
性能
評価セットは TalkBank CABank の CallHome / CallFriend 日本語(知人どうしの電話会話)から切り出した824件・118会話です。ラベルは2つの LLM に別々の観点で判定させ、食い違いは第三の判定で裁定しました(2者の一致度 Cohen's κ 0.9023)。
| 状態 | precision | recall | F1 | 件数 |
|---|---|---|---|---|
| complete | 0.555 | 0.519 | 0.536 | 291 |
| incomplete | 0.691 | 0.686 | 0.689 | 261 |
| backchannel | 0.741 | 0.798 | 0.768 | 272 |
| 指標 | 値 |
|---|---|
| Macro-F1(上記3状態) | 0.664 |
| Youden J(complete/incomplete 判別) | 0.205 |
| CER(実会話) | 0.468 |
| 日本語出力率 | 0.993 |
| ラベル出力率 | 1.000 |
| Wait recall(合成50件で別測) | 0.88 |
wait は自然会話にほとんど出現しないため、評価セットに含まれていません。Macro-F1 は評価セットに実際に支持のある3状態の平均です。
継続適応の前後です。開始時は日本語音声を全件中国語として音写する状態(日本語出力率 0% / CER 1.031)でした。
| 指標 | 4状態 fine-tuning 直後 | このモデル |
|---|---|---|
| Youden J | −0.363 | 0.205 |
| complete F1 | 0.424 | 0.536 |
| incomplete F1 | 0.390 | 0.689 |
| backchannel F1 | 0.718 | 0.768 |
| Macro-F1 | 0.511 | 0.664 |
| CER | 0.557 | 0.468 |
VAD-only との比較
F1 だけでは使い勝手が分からないので、音声エージェントに載せたときの誤り率に翻訳した実測も出します。比較対象は VAD-only(無音が τ ms 続いたら応答する素朴なルール)です。
τ を短くすれば取り逃しは減りますが割り込みが増えるため、1点だけ切り取った比較には意味がありません。このモデルと同じ「話し終わりの取り逃し率」になる τ を10ms刻みで探して並べています。
| 話し終わりの取り逃し | 途中で割り込む | 相槌に割り込む | |
|---|---|---|---|
| このモデル | 48.1% | 28.0% | 17.6% |
| VAD-only(τ=1060ms) | 47.8% | 25.7% | 62.5% |
読み取れることは2つです。
- 話し終わり判定そのものでは、τ を合わせた VAD-only と同等です。取り逃しを揃えると途中割り込みも 25.7% 対 28.0% でほぼ並びます
- 相槌の軸だけは大きく上回ります。差 −44.9%(95%CI [−53.4%, −35.8%])で有意です
「うん」「へえ」に応答しないという判断は無音の長さからは原理的に出せません。このモデルの価値はここに集中しています。
話し終わりの取り逃しが4割強あるのは良い数字ではありませんが、VAD の後段に置く再判定器なので、complete を取り逃した場合は従来どおり VAD のタイムアウト待ちに落ちるだけです。早く返せないだけで、余計な割り込みは足しません。相槌を潰さない VAD の加速器、というのがこのモデルの実用上の位置づけです。
VAD 側の無音長は、元の会話音声に戻り、発話終端から先を該当話者のチャネルで silero VAD にかけて次の発話開始まで実測しました(824件全件)。この録音はチャネル分離が完全ではないため、転写タイムスタンプ由来の gap(分離が完璧な理想の VAD)でも同じ集計をしています。理想側では VAD の途中割り込みは 19.2% とモデルより良くなり、相槌への割り込みは 74.3% とさらに悪くなります。どちらで測っても上の2点は変わりません。
推論性能
RTX 4090・n=200 での実測です。
| 指標 | 値 |
|---|---|
| P50 レイテンシ | 111.6ms |
| P95 レイテンシ | 291.2ms |
| RTF | 0.0389 |
| VRAM ピーク | 2.69GB |
使い方
公式実装のコードが必要です。checkpoint 単体では動きません。
# 1. 公式コード(Apache-2.0)
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/ASLP-lab/Easy-Turn
# 2. LLM 部(checkpoint に重みは入っていますが、アーキ構築と tokenizer に必要)
huggingface-cli download Qwen/Qwen2.5-0.5B-Instruct --local-dir ./Qwen2.5-0.5B-Instruct
# 3. このリポジトリ
huggingface-cli download ayousanz/easy-turn-ja --local-dir ./easy-turn-ja
同梱の train.yaml の llm_path(2箇所)を Qwen のローカルパスに書き換え、checkpoint.pt と同じディレクトリに置いてから実行します。
bash decode/decode_common.sh \
--data_type raw --test_sets <セット名> --gpu_id 0 \
--dir <train.yaml と checkpoint.pt を置いたディレクトリ> \
--ckpt_name checkpoint.pt \
--task '<TRANSCRIBE><BACKCHANNEL><COMPLETE>'
環境は Python 3.10 / torch 2.1.0 / torchaudio 2.1.0 / transformers 4.44.0 / accelerate 1.7.0 / peft 0.17.0 / numpy 1.24 です。公式の requirements.txt には gxl_ai_utils と tensorboardX の記載が漏れているので追加してください。deepspeed はバージョン無指定だと 0.19 系が入り torch 2.1.0 と非互換なので 0.14.4 に固定します(推論だけなら deepspeed 自体が不要です)。
実装上の注意が3点あります。
- モデルが返すのは小文字タグ +
<|endoftext|>です(例:そうですね<complete><|endoftext|>)。大文字で完全一致を取るとラベルが1件も取れていないように見えます - raw 形式の data.list には数値の
styleフィールドが必須です(COMPLETE=0 / INCOMPLETE=1 / BACKCHANNEL=2 / WAIT=3)。自動付与は shard 形式にしかありません - 状態確率を logit から取る場合、状態トークンは Qwen2.5 の tokenizer 上で単一トークンではなく
</ 識別語 />に分割されます。先頭の<は4状態で共通なので、2番目のトークンで識別します。token id はハードコードせず tokenizer から動的に導出してください
学習データ
| 素材 | 内容 | 件数 |
|---|---|---|
| TalkBank CABank CallHome 日本語 | 実会話ターン(評価に使っていない22会話から抽出) | 2,612 |
| J-CHAT | Podcast の実会話ターン。2つの LLM でラベル付け(κ 0.875) | 2,166 |
| 合成 | Irodori-TTS v3 + VoiceDesign v3 の架空話者による合成 | 1,387 |
| ReazonSpeech | ASR 混合(turn : ASR = 39 : 61) | 16時間 |
学習は全解凍(fire_module: encoder_and_link_and_llm)です。凍結した LLM は「音声埋め込み = 中国語」という強い事前分布を持ち、音声側だけを学習しても越えられません。日本語への言語適応には LLM を学習対象に含める構成(全解凍か LoRA)が必要でした。
会話ID単位で train / dev / test を完全に分離しています。評価セットの会話は学習に一切使っていません。
制限事項
- complete の F1 が 0.536 で、これが Macro-F1 を押し下げている唯一の項目です
- 話し終わり判定そのものでは、動作点を揃えた VAD-only に対する優位を示せていません
- 評価は雑談の電話会話(CallHome / CallFriend)のみです。タスク指向の音声エージェント(用件の受け答え)では未測定で、そちらの方が良く出ると推測されますが確認していません
- 1〜3字の complete(「うん」型)は全世代で recall 0.2 前後で頭打ちです。単発クリップに文脈が無いことによる原理的な天井と見ています
- 単発クリップの分類器です。VAD 非依存のストリーミング判定は行いません
- 電話帯域(8kHz 由来)の会話で評価しています。広帯域音声での挙動は別途確認してください
ライセンス
このモデルの重みは CC BY-NC-SA 4.0 で配布します。非商用に限られます。
学習に使った素材のうち、TalkBank CABank(CC BY-NC-SA 3.0)が非商用 + 継承(ShareAlike)を、J-CHAT(CC BY-NC 4.0)が非商用を課すためです。CC BY-NC-SA 3.0 は同じ License Elements を持つ後続版での翻案配布を認めているので、4.0 で継承しています。
| 素材 | ライセンス |
|---|---|
| Easy Turn 公式 checkpoint(ベース) | Apache-2.0 |
| Qwen2.5-0.5B-Instruct | Apache-2.0 |
| Whisper-Medium encoder | MIT |
| Irodori-TTS v3 / VoiceDesign v3 | MIT |
| ReazonSpeech | CDLA-Sharing-1.0(Results に義務なし) |
| J-CHAT | CC BY-NC 4.0 |
| TalkBank CABank CallHome / CallFriend 日本語 | CC BY-NC-SA 3.0 |
このリポジトリは学習済みの重みのみを配布しています。学習・評価に使った音声・転写・クリップは一切含まれておらず、再配布していません。ReazonSpeech と J-CHAT については、著作権法30条の4(情報解析)の範囲での利用です。
ベースの Easy Turn は Apache-2.0 です。同ライセンス §4 に従い、派生物であること、および日本語データによる継続適応という変更を加えたことをここに明示します。
引用
TalkBank の規則により、このモデルを利用した成果では以下の引用が必要です。
Linguistic Data Consortium (2008). CABank Japanese CallHome Corpus. TalkBank. doi:10.21415/T5H59V
Canavan, A., & Zipperlen, G. (1996). CALLHOME Japanese Speech LDC96S37. Philadelphia: Linguistic Data Consortium.
ベースモデルの論文です。
@article{easyturn2025,
title = {Easy Turn: Integrating Acoustic and Linguistic Modalities for Robust Turn-Taking in Full-Duplex Spoken Dialogue Systems},
journal = {arXiv preprint arXiv:2509.23938},
year = {2025}
}
関連
- 公式実装の再現と日本語ゼロショット: https://ayousanz.hatenadiary.jp/entry/2026/08/15/152631
- Easy Turn 論文: https://arxiv.org/abs/2509.23938
- Easy Turn 公式実装: https://github.com/ASLP-lab/Easy-Turn
Model tree for ayousanz/easy-turn-ja
Base model
ASLP-lab/Easy-Turn