Skip to content

v0.4.0

Choose a tag to compare

@nadare881 nadare881 released this 03 Aug 04:31
· 2 commits to main since this release

ストリーミング音声認識・ローカル翻訳・外部アプリ連携を追加したv0.4.0-betaをベースに、翻訳・読み上げモデルの拡充と安定性改善を行った正式リリースです。

正式版では、新たにCAT-Translate 0.8Bと量子化版Supertonic 3を追加しました。また、日本語の発話区切り判定、モデルのダウンロード・検証、外部アプリ連携を改善しています。

重要: ゆかコネNEOとの連携にはv2.3.104以上が必要です。

認識結果が途中か確定かを区別して送信するため、ゆかコネNEOと連携する際は最新版をご利用ください。
https://nmori.github.io/yncneo-Docs/download/

🌐 【MT】CAT-Translate 0.8Bを追加

ローカル翻訳モデルとして、CyberAgentのCAT-Translate 0.8Bを追加しました。

  • 日本語から英語、英語から日本語への双方向翻訳に対応
  • CPU向けONNX Q4 block16量子化モデルを使用
  • 翻訳マッピングと翻訳HTTPサーバーの両方で選択可能
  • 一度ダウンロードすればオフラインで利用可能

従来のLFM2-350M-ENJP-MTとあわせて、用途に応じてローカル翻訳モデルを選べるようになりました。

🔈 【TTS】量子化版Supertonic 3を追加

ローカルTTSに「Supertonic3 (quantized)」を追加しました。

  • 日本語を含む23言語に対応
  • 女性5名・男性5名の計10話者から選択可能
  • CPU向けに主要なONNXモデルをQ4量子化
  • 認識結果と翻訳結果のどちらも読み上げ可能
  • 出力デバイスと音量をマッピングごとに設定可能

通常版のSupertonic 3も引き続き利用できます。

✂️ 【Turn Detector】日本語の発話区切り判定を改善

Morph / Namoで使用する日本語形態素辞書を、Parapper向けのコンパクトな配布形式へ変更しました。

あわせて日本語の文法境界判定を見直し、連体形や助詞で続く文などを途中で確定しにくくしました。短い相づちを含む会話でも、文脈に応じてより慎重に発話の完了を判断します。

⚡ 【ASR】ストリーミング音声認識モデル(Nemotron)

NVIDIA Nemotron系のストリーミングASRモデルを選べます。

  • 英語: Nemotron Speech Streaming 0.6B(160ms / 560ms int8)
  • 多言語: Nemotron 3.5 ASR Streaming 0.6B(160ms / 560ms int8)
  • 日本語・英語を含む29言語に対応

ストリーミングモデルは、発話中の音声を細かい単位で逐次認識します。短い無音を待たず、話しているそばから字幕を更新できます。

途中表示用と確定用でASRモデルを分けられるため、「途中はストリーミングで素早く表示し、確定時は高精度モデルで上書き」という構成も可能です。

🔌 【MT】ローカル翻訳HTTPサーバー

Parapperのローカル翻訳を、他のアプリからHTTPで利用できます。

  • ゆかコネNEO Custom JSON形式の POST /
  • OpenAI互換の POST /v1/chat/completions
  • LFM2またはCAT-Translateをサーバーモデルとして選択可能
  • 直近の翻訳結果をキャッシュ
  • 未導入のモデルをMT設定画面からダウンロード可能
  • 停止後に同じポートで再起動する処理を安定化

サーバーはParapperや音声認識の起動に連動せず、MT設定画面で「起動」を押した場合のみ 127.0.0.1 で待ち受けます。

🖥️ 【入力】システム音声の文字起こし

マイクの代わりに、PCで再生中の音声を認識入力として選択できます。

通話相手の音声や、動画・配信の音声をリアルタイムに字幕化する用途に利用できます。

🤖 【連携】外部アプリ連携モード

Parapperの認識機能を外部アプリから利用するための接続モードを追加しました。

  • HTTPモード: 認識途中・確定イベントを指定URLへPOST
  • WebSocketモード: 外部アプリからPCM音声を送り、認識イベントを受信
  • LANへ公開する場合のBearer APIキー認証に対応
  • AIAvatarKit・AITuber Kit向けサンプルを同梱
  • Streaming Recognition Protocol v1を公開

AIAvatarKit向けサンプルでは、途中結果と確定結果の扱い、接続状態の確認、HTTP API連携に関する説明を拡充しました。

🔧 その他の改善

  • CAT-Translate、Supertonic 3 Q4、形態素辞書の配布ファイルをチェックサムで検証
  • モデルダウンロード後の準備状態表示を更新
  • Supertonic 3のCPUスレッド設定を処理ごとに調整
  • 翻訳HTTPサーバー停止後のポート解放待ちを改善
  • 接続設定・翻訳設定・モデル管理画面を整理
  • 利用者向け・開発者向けドキュメントを再編
  • モデルカード、ライセンス、第三者ライセンス表記を拡充
  • Rustツールチェーンを1.97.1へ更新
開発者向け

モデル配布と検証

CAT-Translate 0.8BとSupertonic 3の量子化モデルについて、変換・ステージング・検証用スクリプトを追加しました。

配布物にはモデルカード、ライセンス、変更内容、ビルド情報、配布マニフェスト、SHA-256チェックサムが含まれます。アプリ側でも、ダウンロードしたファイルのサイズとチェックサムを検証します。

日本語形態素辞書

UniDic CWJ 3.1.1を元に、Parapperの文法境界判定で必要な情報をコンパクトな形式へ変換するパイプラインを追加しました。

生成・検証・配布手順は scripts/morph-dictionary/README.md に記載しています。

Streaming Recognition Protocol v1

外部アプリ向けのWebSocket認識プロトコルを documents/developer/streaming-recognition-protocol-v1.md で公開しています。

GET /ws/recognition で接続し、session start、PCM音声送信、turn final、session doneの順でセッションを進めます。

ローカル翻訳サーバー

翻訳サーバーは次のendpointのみを受け付けます。

  • POST /: ゆかコネNEO Custom JSON
  • POST /v1/chat/completions: OpenAI互換

指定されたポートやendpointへの接続に失敗した場合、別ポート・別endpointへの暗黙のfallbackやretryは行いません。

既知の制限

  • ローカル翻訳は日本語と英語の相互翻訳のみ対応しています。
  • 量子化モデルでは、元モデルと翻訳結果・読み上げ結果が異なる場合があります。
  • ストリーミングモデルを途中表示に使用した場合も、確定時の再認識には非ストリーミングモデルを使用します。
  • 翻訳HTTPサーバーに認証機能はありません。ポート転送などで外部ネットワークへ公開しないでください。
  • GitHub Releasesで配布するビルド済みインストーラーはWindows x64向けMSIです。

Full Changelog: v0.4.0-beta...v0.4.0

Changes since v0.3.0: v0.3.0...v0.4.0