日本語の認識・発話の区切り・翻訳ログの見やすさを中心に改善し、配信や VRChat で会話しながら使う場面でより自然に使えるようにしています。
ParapperをVRChatで活用するための記事を公開しております。こちらも合わせてご覧ください。
https://zenn.dev/parakeet_tech/articles/df97ddebc7b01e
🇯🇵 【ASR】日本語の音声認識モデルを追加
日本語の文字起こしで、これまでの ReazonSpeech k2v2に加えて、NeMo Parakeet TDT-CTC 0.6B (ja) モデルを選べるようになりました。
ReazonSpeech K2V2に比べやや重いですが、フィラーの省略や文が丸々飛んでしまうことが少ないモデルになっています。用途に応じて使い分けてください。
🧠 【TD】日本語字幕の区切りを改善
Turn Detector に Namo を使っているとき、日本語の文の区切りをより自然に扱えるようにしました。
形態素解析による文末確定のロジックを入れることで、より一文一文を素早く確定できるようになっています。
🪶 【TD】軽量な発話区切りモード「Morph」を追加
Turn Detector に新しいモード Morph を追加しました。
日本語に対して形態素解析だけで文末かどうかを判定するため、Namo モデルを使わずに動作します。Namo に比べて軽量で、文末をより素早く確定できます。「できるだけ軽く・速く区切りたい」場合に向いた選択肢です。
⚡ 途中表示と確定表示を安定化
話している最中に出る字幕と、話し終わってから確定する字幕の扱いを見直しました。
途中表示から確定へ切り替わるときの乱れ、発話の続きが前の字幕とうまくつながらない問題、無音の前後で認識結果が不自然になる問題を改善しています。
🌐 【MT】翻訳ログを見やすく
音声の認識結果と翻訳結果の並べ方を見やすくしました。
文字起こし中や翻訳が少し遅れて届く場合でも、「どの字幕に対する翻訳か」が一目で分かります。
🔧 その他
認識中に設定を変えても、必要な部分だけにすぐ反映されるようにしました。
README と使い方ドキュメントを更新しました。
開発者向け
Recognition runtime の再設計
認識処理を control / segmentation / transcription / turn のステージ構成へ整理しました。VAD、Segment、ASR request/result、TurnDraft / TurnConfirmed、delivery への出力境界を分け、状態遷移とテスト対象を追いやすくしています。
Turn / boundary 処理の強化
途中表示・再認識・確定・timeout final の順序が崩れにくいようにし、実行が詰まっている際にもスムーズに優先度の高い処理から実行できるよう強化しました。
Turn Detector に Morph モードを追加
grammar boundary(形態素解析ベースの文法境界)だけで Turn 完了を判定する Morph モードを追加しました。Namo モデルのロード・推論を行わず、completion ASR 末尾の境界クラス(StrongEnd / PredicateEnd / NormalEnd)で確定します。Namo が NormalEnd や境界候補なしを Namo に委ねるのに対し、Morph は文法のみで完了するため軽量かつ高速です。日本語 ASR 利用時は引き続き形態素辞書(japanese_morph)が必要です。
日本語 grammar boundary 用の形態素辞書
grammar boundary 判定のために vibrato-rkyv + UniDic 系の形態素辞書を導入しました。get_model_status に japanese_morph の状態を追加しています。
実データを用いた診断コマンドの整備
JVSやFLEURS-Rを使って挙動を確認するテストを追加しています。JVS ASR verifier などの診断用コマンドは parapper-diagnostics パッケージへ分離し、通常の Tauri app パッケージや MSI に混ざらないようにしています。real-asr-tests feature を使う診断テストは、ローカルの dataset パスを環境変数または .env から受け取ります。
設定反映と音声入力の整理
設定変更時の dirty 判定をセクション単位に分け、音声入力 / VAD / driver など必要な部分だけを再構成するようにしました。マイク入力キュー、リサンプラ、ノイズキャンセリングの処理も見直し、CPAL callback 側で詰まりにくい構成にしています。
堅牢性とテスト
- ONNX Runtime 初期化エラーの伝播を改善しました。
- モデル archive 展開時の path traversal / link 対策を追加しました。
- YNC plugin API と NEO text input API の endpoint を分けて検証する regression test を維持しています。
- recognition まわりの unit / integration test を増やし、ASR dispatch、route selection、turn split、timeout final の境界を確認しています。
Full Changelog: v0.2.0...v0.3.0