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つです。

  1. 話し終わり判定そのものでは、τ を合わせた VAD-only と同等です。取り逃しを揃えると途中割り込みも 25.7% 対 28.0% でほぼ並びます
  2. 相槌の軸だけは大きく上回ります。差 −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.yamlllm_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_utilstensorboardX の記載が漏れているので追加してください。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}
}

関連

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ayousanz/easy-turn-ja

Finetuned
(2)
this model

Paper for ayousanz/easy-turn-ja