日本語音声認識「Haas-ja-v1.0」をRTX 3060で8モデルと比較:部屋探しの会話で専門用語96%、1分の音声を0.16秒

日本語の音声認識モデル「Haas-ja-v1.0」が公開されました。社内の検証マシン「DQN」(GeForce RTX 3060 12GB)で、ほかの7モデルと比べてみました。題材は、不動産会社で部屋を探す会話です。「敷金」「重要事項」のような業務の言葉が多い音声を自分たちで作り、音声と書き起こしも公開できる形にしました。
結論から言うと、Haas-ja-v1.0は語彙を登録すると専門用語の正解率が96%で最も高く、誤り率(CER)も2.3%で最上位に並びました。1分の音声の処理は0.16秒で、Whisper large-v3-turboの約8分の1です。ただ、全体の誤り率だけならNVIDIAのparakeetが2.2%でわずかに上です。上位の差は小さく、差がつくのは専門用語と速さでした。
測定日:2026年10月30日。公式情報の確認日:2026年10月31日。
Haas-ja-v1.0とは
Third Intelligenceが公開した日本語の音声認識モデルです。NVIDIAのParakeet-TDTをもとに、デコーダーの予測ネットワークをLSTMからKimi Delta Attention(KDA)に置き換えています。出典:モデルカード、公式リポジトリ。
開発者のTatsu MatsushimaさんのXへの投稿で公開を知り、試してみました。
| 項目 | 公式の情報 |
|---|---|
| 規模 | 615.8M(エンコーダー608.9M、予測ネットワーク3.9M、ジョイントネットワーク3.0M) |
| 入力 | 16 kHzモノラル。学習は30秒以内の発話で、長い音声は無音のところで区切る関数がある |
| 学習データ | 約4万6千時間(ReazonSpeech、Common Voice 26.0、YODAS、独自データ) |
| ライセンス | 重み・コードともApache 2.0 |
| 動作条件 | NVIDIA GPUのLinux、Python 3.11以上、NeMo 2.7。CPUとmacOSは非対応 |
| 機能 | 読み付きのカスタム語彙。NVIDIA Nemotron-3-Diarizationと組み合わせた話者ラベル |
| 苦手なこと | オフラインの書き起こし向けで、低遅延のストリーミングは調整が要る場合がある。フィラーを入れるかどうかなど、出力の形式は指定できない |
公式のベンチマーク(asr-ja-bench v1.1、公開テストセット5種、18,318発話、23.38時間)では、CER strictが6.12%で、評価した公開モデルの中で最良と報告されています。parakeetと同じくらいの速さで、CER strictは約1.1ポイント低いとのことです。この値は公式の報告で、本稿では再現していません。
なぜテスト音声を作ったのか
既存のベンチマークは、読み上げ文やスピーチが中心です。業務の会話、特に専門用語が多い場面での実力は見えにくいところがあります。
以前、仕事の電話を想定した音声で測ったことがありますが、台本に実在の会社名が入っていて、音声も書き起こしも公開できませんでした。今回は、数字と一緒に音声と書き起こしをそのまま見せられることを目標に作り直しました。
テストセットの中身
一般の人(佐々木さん)が不動産会社で引っ越し先を探す、5場面の会話です。話者は4人で、合計6.8分、56発話、1,783文字あります。
| 場面 | 長さ | 入れた難しい語の例 |
|---|---|---|
| 1. 来店して希望条件を伝える | 76秒 | 1LDK、管理費、敷金、礼金、ペット可、祐天寺 |
| 2. 電話で問い合わせて内見を予約 | 83秒 | アオバト住宅、ノクティルカ鷹番、302号室 |
| 3. 内見しながらの会話 | 72秒 | 築8年、鉄筋コンクリート造、2口のIHコンロ |
| 4. 申し込みと入居審査の説明 | 76秒 | 保証会社、連帯保証人、源泉徴収票、内定通知書 |
| 5. 契約前の重要事項説明 | 103秒 | 宅地建物取引士、取引士証、原状回復、損耗、借主 |
- 音声はすべてAIの合成音声です(OpenAI
gpt-audio、OpenRouter経由。合成の費用は約0.8ドル) - 会社名「アオバト住宅」と建物名「ノクティルカ鷹番」は架空です。検索して実在しないことを確かめました。地名と駅名は実在します
- 各場面に、clean(16 kHz)と電話音質(300〜3400 Hz、8 kHz、μ-law)の2種類があり、音声は全部で10本です
- 専門用語と固有名詞48語の語彙リスト(表記と読み)も作りました。音声の中では、のべ122回出てきます。「語彙あり」の条件と、専門用語の採点に使います
音声を聞く
▶ を押すと再生します。場面全体の音声です。
全10本の音声と、発話を1つずつ聞けるボタンは結果のページにあります。
測定の方法
- 環境:GeForce RTX 3060 12GB、Core i5-12400、メモリ32GB
- 誤り率:jacer v1.2で計算したCERです。jacerはHaasの開発元が公開している採点ツールです。strictは漢字とかなの書き分けも誤りに数え、kanaは読みだけを比べます
- 専門用語:語彙リストの表記が、正解と同じ回数だけ出たかを数えました
- 処理時間:バッチなしで1本ずつ書き起こしたときの、音声1分あたりの秒数です。モデルの読み込み時間は含みません
- 語彙の渡し方:Haasは
haas_asr.Vocabulary(読み付き)、Whisperはinitial_prompt、Qwen3-ASRはcontextです - 実行環境:Haasは公式リポジトリの
uv環境、parakeetとReazonSpeechはNeMo、Whisperとkotobaはfaster-whisper、Qwen3-ASRはqwen-asr、LFM3はllama.cpp(BF16のGGUF)です
結果
| モデル | 語彙 | CER strict | kana | 電話音質 | 専門用語 | 1分の処理 |
|---|---|---|---|---|---|---|
| parakeet-tdt_ctc-0.6b-ja(NVIDIA) | なし | 2.2% | 0.5% | 2.3% | 91% | 0.25秒 |
| Haas-ja-v1.0 | あり | 2.3% | 0.6% | 2.3% | 96% | 0.16秒 |
| Haas-ja-v1.0 | なし | 2.5% | 0.6% | 2.6% | 84% | 0.13秒 |
| Whisper large-v3-turbo(OpenAI) | あり | 2.9% | 0.9% | 3.0% | 78% | 1.26秒 |
| Qwen3-ASR-1.7B | なし | 3.0% | 1.0% | 3.2% | 78% | 3.15秒 |
| Whisper large-v3-turbo | なし | 3.3% | 1.1% | 3.4% | 71% | 1.24秒 |
| LFM3-Audio-2B(Liquid AI)※ | なし | 3.4% | 1.1% | 3.4% | 70% | 2.19秒 |
| LFM3-Omni-2B ※ | なし | 3.7% | 1.2% | 3.6% | 68% | 2.23秒 |
| ReazonSpeech NeMo v2 | なし | 3.8% | 3.2% | 3.5% | 87% | 1.41秒 |
| kotoba-whisper-v2.2 ※ | なし | 5.2% | 2.7% | 5.2% | 61% | 1.49秒 |
| Qwen3-ASR-1.7B | あり | 8.8% | 8.9% | 15.6% | 93% | 3.54秒 |
※ 無音のところで20秒以内に区切ってから渡したものです(理由は後述)。CERと専門用語は全音声、電話音質の列は電話音質5本のCER strictです。
- 上位はほぼ互角です。誤り2〜3%は100文字で2〜3文字で、差が0.5ポイント程度の順位は、音声を変えれば入れ替わりえます
- 差がつくのは専門用語です。語彙ありのHaasは、のべ122回のうち117回を正しく書きました。Whisperは語彙を渡しても95回(78%)です
- 速さは大きく違います。Haasは1分の音声を0.13〜0.16秒で処理しました。Whisperの約8〜10倍、Qwen3-ASRの20倍以上の速さです
- 電話音質でもほとんど落ちません。語彙ありのQwen3-ASRを除くと、cleanからの悪化は最大で0.4ポイントでした。ただし、合成音声には雑音も言いよどみもありません
- 誤りの多くは漢字の当て方です。kanaの列は上位ではどれも約1%前後で、音はほぼ聞き取れています(ReazonSpeechとkotobaは読みの段階の誤りも約3%あります)
公式のベンチマークではHaasがparakeetより約1.1ポイント良いのに対し、今回はparakeetが0.1ポイント上でした。音声の種類が変わると順位が動く例です。
語彙の効果:Haasは84%から96%へ
Haasのカスタム語彙は、表記と読みを渡す形です。
import haas_asr
model = haas_asr.load_model("third-intelligence/Haas-ja-v1.0")
audio = haas_asr.load_audio("s5_juusetsu__clean.wav")
vocabulary = haas_asr.Vocabulary({"ノクティルカ鷹番": ["のくてぃるかたかばん"]})
text = haas_asr.transcribe_longform(model, audio, vocabulary=vocabulary)
公式の説明によると、読みをデコード中に強め(NeMoのGPU phrase boosting)、見つかった読みを指定の表記に置き換えます。語彙なしのデコードと比べて、登録した語をまるごと含む変更だけを採用するので、関係ないところが書き換わりにくい作りです。公式は処理時間を約1.3倍としていて、今回の測定では約1.2倍(0.13秒→0.16秒)でした。
語彙による変化は次のとおりです。
| モデル | 語彙なし | 語彙あり | CER strictの変化 |
|---|---|---|---|
| Haas-ja-v1.0 | 84% | 96% | 2.5% → 2.3% |
| Whisper large-v3-turbo | 71% | 78% | 3.3% → 2.9% |
| Qwen3-ASR-1.7B | 78% | 93% | 3.0% → 8.8%(後述) |
ただし、語彙は万能ではありません。語彙ありのHaasでも「源泉徴収票」は「厳選徴収表」、「アオバト住宅」は「青葉住宅」のままでした。逆に、語彙を渡さないparakeetは両方とも正しく書いています。
書き起こしの実例
cleanの音声での例です。太字が正解と違うところです。Whisperは語彙なしで、kotobaとLFM3-Audioは区切ったものです。
| 正解 | Haas(語彙あり) | Haas | parakeet | Whisper | Qwen3-ASR | LFM3-Audio | kotoba |
|---|---|---|---|---|---|---|---|
| 敷金と礼金 | ○ | ○ | ○ | 資金と霊金 | ○ | 資金と礼金 | 指揮金と冷金 |
| 祐天寺 | ○ | 優天寺 | ○ | 有点寺 | 有天寺 | 遊園地 | 有点字 |
| ノクティルカ鷹番 | ○ | 〜高番 | 〜タカバ | 〜高版 | 〜高橋 | 〜高板 | 〜高番 |
| アオバト住宅 | 青葉住宅 | 青葉住宅 | ○ | 青葉と住宅 | 青葉と住宅 | 青葉と住宅 | 青葉と住宅 |
| 源泉徴収票 | 厳選徴収表 | 厳選徴収表 | ○ | 厳選聴取票 | ○ | 現金徴収評価 | 厳選徴収評価 |
| 取引士証 | ○ | 取引師匠 | 取引師匠 | 取引師匠 | 取引指針 | 取引師証 | 取引師匠 |
| 損耗は借主様 | ○ | ○ | 損耗は飼い主様 | ○ | 損蒙は借り主様 | 損傷は借り主様 | 尊毛は狩り主様 |
「敷金」が「資金」や「指揮金」になるのは、不動産を知らない人の耳のような間違いです。Whisperは語彙を渡しても「資金と霊金」のままでした。「祐天寺」が「遊園地」になるLFM3-Audioは、音声認識専用ではない2Bの小型モデルらしい、意味ごと置き換わる誤りです(LFM3についてはこちらの記事も参照してください)。「取引士証」は語彙を渡さないと、多くのモデルが「師匠」に寄ります。
表の発話を聞く
上の表で取り上げた語を含む発話です。
渡し方で結果が変わるモデル
今回の音声はどれも72秒以上あります。モデルの性能と同じくらい、正しい渡し方が大事でした。
| モデル | 普通に渡すと | 対処 |
|---|---|---|
| LFM3-Audio/Omni | 途中の発話を飛ばす(CER strict 12.7%/15.3%) | 20秒以内に区切ると3.4%/3.7% |
| kotoba-whisper-v2.2 | 途中が丸ごと抜ける(30.1%)。語彙をプロンプトで渡すとさらに悪化(57.0%)、区切ったうえで渡すと出力が空 | 区切って語彙なしなら5.2% |
| Qwen3-ASR | 語彙をcontextで渡すと、電話音質の1本で語彙リストそのものを書き起こしに混ぜた(CER strict 8.8%) | 語彙なしなら3.0% |
| Haas-ja-v1.0 | transcribe_longformが長い音声を自動で区切る | そのままでよい |
Qwen3-ASRの語彙ありは、cleanだけならCER strictが1.9%で、今回の全条件で最も低い値でした。ところが電話音質の1本で、「お電話ありがとうございます。アオバト住宅、ノクティルカ鷹番、鷹番、学芸大学、祐天寺、東横線、1LDK、管理費、敷金、礼金…」と、会話の代わりに語彙リストを書き出しました。このため電話音質は15.6%まで悪化しています。
音声づくりでつまずいたこと
チャット型の音声モデルは「読む」より「答える」
使ったgpt-audioは、専用の読み上げAPIではなく、チャットに音声で返事をさせる方式です。そのため、台本のセリフが質問だと答えてしまいます。
- 「猫が壁を引っかいてしまった場合は、どうなりますか。」→「壁紙が剥がれることがあります。爪とぎ用のグッズを用意すると良いでしょう」と助言を始めた
- 「もしもし、ホームページに載っていた〜について伺いたいのですが。」→「私は今、日本語の台本の読み上げ専用ですので、ご質問には答えられません」と断った
- 「承知しました。説明はよくわかりました。」→「承知しました。では、読み上げます。」と前置きだけで終わった
会話の履歴に「セリフ:〇〇」→「〇〇」というお手本(質問文やお礼を含む5例)を入れると、読むようになりました。モデルは「実際に話した内容」のテキストも返すので、それが台本と一致するまで自動で作り直しています。
テキストが一致しても、発音が合っているとは限らない
「話した内容」のテキストは、56発話すべてが台本と一致しました。それでも音声認識にかけると、ほとんどのモデルが同じように聞き違える箇所がありました。そうした11発話を人が耳で確かめたところ、4発話は合成音声のほうが読み間違えていました。
| 台本 | 合成音声の発音 | 書き起こし |
|---|---|---|
| 退去の1か月前までに | はいきょ | 8モデル中5モデルが「廃墟」か「廃虚」 |
| 敷金が1か月分 | しきかん | 7モデルが「指揮官」 |
| 初回に家賃の | 「に」が聞き取れない | 「初回家賃の」 |
| 通常は | とぅうじょうは | ばらばら |
3か所は、読みの指示を直して解決しました。「退去」だけは、かなで「たいきょ」と指示しても「はいきょ」と読みます。最終的に原稿を「お部屋を退去する1か月前までに」に変えたところ、正しく読むようになりました。
なお、合成音声が「はいきょ」と読んだ箇所で、Qwen3-ASRと、区切らずに渡したLFM3は「退去」と書いていました。音と違っても、文脈から正しい語を選んだ形です。合成音声で音声認識を測るなら、人の耳での確認は省けません。この4か所は直して、全モデルを測り直しています。表の数字は直したあとの音声のものです。
別の音声での結果
以前測った、業界用語がさらに多い電話の会話(約1分×16本)では、語彙ありのHaasが5.8%、Whisper large-v3-turboが6.9%、語彙なしのHaasが7.7%、LFM3-Audio-2Bが8.9%、parakeetが9.9%でした。専門用語の正解率は、語彙ありのHaasが74%で最も高く、語彙なしのHaasは50%です。この音声は実在の社名を含むため非公開で、誤り率の計算方法も今回とは違うので、数字をそのまま比べることはできません。
語彙ありのHaasが最も良いのは同じですが、今回トップのparakeetはこの音声では上位に入りませんでした。用語が難しくなると順位が動きます。
この検証でわかること・わからないこと
- 合成音声は人の声より聞き取りやすく、言いよどみ、雑音、方言がありません。実際の録音では、どのモデルも誤り率が上がるはずです。実際の録音では測っていません
- 約7分の小さなテストです。順位より、専門用語の差、速さの差、壊れ方の傾向を見てください
- 語彙リストは、この台本から作ったものです。実際の業務で同じように語を網羅できるとは限りません
- 語彙の渡し方はモデルごとに違います。Whisperなどは別の渡し方で結果が変わる可能性があります
- 合成にOpenAIの音声を使ったので、同じOpenAIのWhisperに有利に働いた可能性は否定できません。今回の結果では、Whisperが特に有利という傾向は見られませんでした
- 処理時間は1本ずつの値です。まとめて処理すれば、どのモデルももっと速くなる可能性があります(公式の値はRTFx 3,236で、今回は370〜450です)
テストセットの公開
結果のページで、音声10本、正解テキスト、全モデルの書き起こしを公開しました。音声はすべてAIの合成音声です。
- 結果のページ(発話ごとのボタンで音声を1つずつ聞けます。正解と違う文字は色付きで比べられます)
- ライセンス:音声、台本、正解テキストはCC BY 4.0です。各モデルのライセンスはモデルカードを参照してください
まとめ
Haas-ja-v1.0は、今回の部屋探しの会話では、語彙ありで専門用語96%、CER strict 2.3%、1分の音声を0.16秒という結果でした。専門用語と速さの両方でトップクラスで、業務の音声で語彙リストを用意できるなら、最初に試す候補になります。
語彙を用意しないなら、誤り率2.2%のparakeetも手軽で強い選択肢です。普通の会話であれば、公開モデルの上位はどれも誤り2〜3%でした。Whisperから乗り換えるかどうかは、自分の音声と語彙で測って決めるのが確実です。
もう1つの教訓は、合成音声のテストでも最後は人の耳で確かめることです。多くのモデルが「廃墟」と書いたとき、間違っていたのは読み上げたAIのほうでした。
参照資料:Haas-ja-v1.0 モデルカード/Haas-ASR 公式リポジトリ/Haas-ja-v1.0 公開記事/asr-ja-bench/jacer。情報は2026年10月31日に確認。
