1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Granite Speech 5.0 が日本語対応 ― 4.1 2B・5.0 2B・軽量470Mを同じテストで比べたら、470Mが誤り半減で圧勝した

1
Posted at

1. はじめに

2026年10月21日、IBM が音声認識モデルの最新版 Granite Speech 5.0 を公開しました。

今回の注目点は、日本語が正式な対応言語に入ったことです。学習データにも、日本語ASRを狙った合成データが名指しで追加されています。

前回の記事では、Granite Speech 4.1 2B を日本語の音声認識に使い、日本語特化の Watson STT Large モデルと「ほぼ互角」という結果になりました。

テストセットは、さらにその前の Watson STT の Broadband(前世代)モデルと Large モデルの比較から使い続けている、自作の日本語音声5本です。

本記事では、前回と 同じテストセット・同じ評価パイプライン・同じ生成パラメーター で、次の3モデルを比較しました。

  • Granite Speech 4.1 2B(前回のモデル)
  • Granite Speech 5.0 2B(4.1 2B の後継)
  • Granite Speech 5.0 470M TurboCTC(軽量・高速モデル。今回日本語対応)

結論を先に書くと、本命と思っていた 5.0 2B は 4.1 2B とほぼ同じ結果で、軽量な 470M の方が誤りが半分以下、しかも約70倍以上速い という、意外な結果になりました。

補足(重要): 本検証は限定的なサンプルでの比較です。WER などの指標はモデル間の比較目的で用いており、他ソリューションとの直接比較や一般化には注意が必要です。

2. Granite Speech 5.0 の3つのモデル

今回のリリースでは、用途別に3つのモデルが公開されています(いずれも Apache 2.0)。

モデル パラメーター 特徴 IBM の推奨用途
granite-speech-5.0-2b 2B 音声エンコーダー+言語モデル。プロンプトでキーワード指定・言語指定・翻訳ができる 高精度な文字起こし・翻訳
granite-speech-5.0-470m-turboctc 470M エンコーダーのみ(CTC)。プロンプトなし、一度に推論 高速・端末上での文字起こし
granite-speech-4.1-2b-plus 2B 話者分離・単語タイムスタンプ 複数人の会議記録

5.0 2B は 4.1 2B の後継で、パラメーター数は同じです。モデルカードに挙げられている改善点は、英語の精度と雑音への強さ、言語ID指定への対応、キーワード指定の上限拡大(最大2,000語)などです。

470M TurboCTC は、8月に英語専用で公開されたモデルが、今回のリリースで日本語を含む7言語対応に更新されたものです。モデルカードには「日本語の3つのテストセット(CSJ、CommonVoice-17、FLEURS)すべてで、470M の方が 2B より文字誤り率が低い」と書かれています。本記事のテストでも、この主張が成り立つかがひとつの見どころです。

3. 検証環境

項目 内容
環境 IBM TechZone / watsonx.ai Studio の Jupyter Notebook
GPU Tesla V100 16GB × 2
Python 3.12
ライブラリ torch 2.6.0 / torchaudio 2.6.0+cu126 / transformers 5.21.0
テストセット 自作の日本語短文音声 5本(14〜20秒、16kHz モノラル WAV)。下記参照
評価 watson-stt-comparison の評価パイプライン(MeCab でトークン化して WER を算出)

watsonx.ai Studio のライトプランでは CPU 環境しか選べないため、前回と同じく TechZone の GPU 環境を使いました。

モデルは、5.0 2B と 4.1 2B を float16 で、470M を float32 で読み込んでいます(V100 は bfloat16 に非対応のため)。

テストセット

Watson STT の Broadband 対 Large の検証のときに作ったものです。その検証では、NHKニュースの音声でも試しましたが、アナウンサーのはっきりした発話はどちらのモデルも WER 10% 以下と良好でした。そこで、より実践的・挑戦的な条件で評価するために、検証用の原稿を用意して自分の声で録音しました。特徴は次のとおりです。

  • ビジネス系の文脈(経理、マーケティング、会議の議事録想定など)
  • 意図的にやや不明瞭(ぼそぼそ)に発話した箇所を含む
  • 原稿に「生成AI」など比較的新しい用語を含める
# 正解テキスト
1 現在、企業は社員のリスキリングを促進しており、特に生成AIやデータ分析のスキル習得が急務となっています。
2 2023年度から完全実施予定のインボイス制度に備え、経理部門は適格請求書の管理システムを刷新しました。
3 会議の効率化に向けて、ChatGPTを活用した議事録生成サービスを試験導入し、初年度からコスト削減につながる見込みです。
4 エンジニアは生成AIの学習モデルを改善するため、コードを最適化したと説明しました。一方で、社内では行動規範、いわゆるコード・オブ・コンダクトの見直しも進めています。
5 新しいマーケティング施策では、クラウドを活用したデータ統合基盤を導入し、ターゲット層の分析精度を高めることを目指しています。ただし、クラウドファンディングのような支援型の手法も検討中です。

生成パラメーター(2B の2モデル)

前回の 4.1 2B と完全に同じ条件にそろえました。

PROMPT = "transcribe the speech with proper punctuation and capitalization."
GEN_KW = dict(max_new_tokens=512, repetition_penalty=1.3, no_repeat_ngram_size=5)

repetition_penalty と no_repeat_ngram_size は、前回、日本語で同じ語を繰り返し出力し続ける(ループする)のを防ぐために入れたものです。

470M は CTC モデルなので、プロンプトも生成パラメーターもありません。音声を渡すだけです。

4. 前回からの変更点・ハマりどころ

transformers は PyPI の通常版で動いた

前回(4.1)は GitHub の main ブランチ版の transformers が必要でしたが、今回は pip install -U transformers で入る 5.21.0 でそのまま動きました。

torchaudio を入れたらカーネル再起動が必要

プロセッサの読み込みで、次のエラーが出ました。

ImportError:
GraniteSpeechFeatureExtractor requires the torchaudio library but it was not found in your environment. Please install it and restart your runtime.

torchaudio はインストール済みでした。原因は順番で、transformers を先に import していたためです。transformers は import した時点で torchaudio の有無を記録するので、後から torchaudio を入れても「無い」と判定されたままになります。torchaudio を入れたらカーネルを再起動すれば解決します。

!pip install torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu126
# → ここでカーネルを再起動

470M は読み込み方も呼び出し方も 2B と別物

470M はエンコーダーのみの CTC モデルなので、AutoModelForCTC で読み込み、プロンプトなしで推論します。

from transformers import AutoModelForCTC, AutoProcessor

processor_470 = AutoProcessor.from_pretrained(LOCAL_DIR_470)
model_470 = AutoModelForCTC.from_pretrained(LOCAL_DIR_470, device_map="cuda:1", dtype=torch.float32)

sr = processor_470.feature_extractor.sampling_rate
inputs = processor_470([wav[0].numpy()], sampling_rate=sr, device=model_470.device)
inputs = inputs.to(model_470.device, dtype=model_470.dtype)
out = model_470.generate(**inputs)
text = processor_470.batch_decode(out, skip_special_tokens=True)[0]

GPU が2枚あるので、5.0 2B を1枚目、4.1 2B と 470M を2枚目に載せ、モデルを入れ替えずに同じ音声で続けて比較しました。

5. 結果

5.1 書き起こし結果

5.0 2B と 470M の出力を、正解テキストと並べます。

レコーディング1(14.3秒)

正解   : 現在、企業は社員のリスキリングを促進しており、特に生成AIやデータ分析のスキル習得が急務となっています。
5.0 2B : 現在、医療は社員のリスキリングを促進しており特に生成aiやデータ分析のスキル修得が急務となっています。
470M   : 現在企業は社員のリスキリングを促進しており特に生成aiやデータ分析のスキル習得が急務となっています。

レコーディング2(15.4秒)

正解   : 2023年度から完全実施予定のインボイス制度に備え、経理部門は適格請求書の管理システムを刷新しました。
5.0 2B : 2013年度から完全実施予定のインボイス制度に備え、税理部門は適格請求書の管理システムを刷新しました。
470M   : 2013年度から完全実施予定のインボイス制度に備え営部門は適格請求書の管理システムを刷新しました

レコーディング3(15.0秒)

正解   : 会議の効率化に向けて、ChatGPTを活用した議事録生成サービスを試験導入し、初年度からコスト削減につながる見込みです。
5.0 2B : 会議の効率化に向けて、チャットgptを活用した記録生成サービスを試験導入し去年度からコスト削減につながる見込みです。
470M   : 会議の効率化に向けてchatgptを活用した持録生成サービスを試験導入し初年度からコスト削減につながる見込みです。

レコーディング4(20.1秒)

正解   : エンジニアは生成AIの学習モデルを改善するため、コードを最適化したと説明しました。一方で、社内では行動規範、いわゆるコード・オブ・コンダクトの見直しも進めています。
4.1 2B : エンジニアは生成AIの学習モデルを改善するためコードを最適化したと説明しました一方で社内では行動機関いわゆるcodeforconduitの見直しも進めています。
5.0 2B : エンジニアは生成aiの学習モデルを改善するためコードを最適化したと説明しました一方で社内では行動機関いわゆるcodeofconductの見直し�も進めています。
470M   : エンジニアは生成aiの学習モデルを改善するため高度を最適化したと説明しました一方で社内では行動規範いわゆる行動ofコンダクトの見直しも進めています

レコーディング5(20.5秒)

正解   : 新しいマーケティング施策では、クラウドを活用したデータ統合基盤を導入し、ターゲット層の分析精度を高めることを目指しています。ただし、クラウドファンディングのような支援型の手法も検討中です。
4.1 2B : 新しいマーケティング施策ではクラウドを活用したデータとおきばんを導入しあげてそうの分析精度を高めることを目指しています私、クラウドファンディングのような支援型の手法も検討中です。
5.0 2B : 新しいマーケティング施策ではクラウドを活用したデータとお気転を導入しあげっと層の分析精度を高めることを目指しています私、クラウドファンディングのような支援型の手法も検討中です。
470M   : 新しいマーケティング施策ではクラウドを活用したデータ統合基盤を導入しターゲット層の分析精度を高めることを目指していますただしクラウドファンディングのような支援型の手法も検討中です。

4.1 2B の再推論では、レコーディング1〜3は 5.0 2B と一字一句同じ出力でした。差が出たのはレコーディング4・5だけです(上に併記)。また、レコーディング1の 4.1 2B の出力は、前回(5月)の結果とも一致しました。環境が変わっても 4.1 の結果は再現しており、差はモデルによるものと言えます。

5.2 WER

Watson STT の2モデルと 4.1 2B は、過去の記事の数値です。

STT Broadband STT Large 4.1 2B 5.0 2B 5.0 470M
レコーディング1 0.250 0.143 0.107 0.107 0.036
レコーディング2 0.400 0.200 0.080 0.080 0.080
レコーディング3 0.138 0.138 0.172 0.172 0.069
レコーディング4 0.225 0.075 0.100 0.150 0.100
レコーディング5 0.395 0.140 0.163 0.140 0.000
誤り数の合計 47 22 21 22 9
全体の WER 0.285 0.133 0.127 0.133 0.055

※ 正解テキストは全体で165トークン。4.1 2B の誤り数は、前回記事の WER とトークン数から算出。

470M の誤りは 9 で、STT Large・4.1 2B・5.0 2B(21〜22)の半分以下でした。レコーディング5は誤りゼロです。Broadband(47)から数えると、同じテストセットで誤りが約5分の1になったことになります。

5.3 処理時間

generate の実行時間です(音声の前処理は含みません)。

5.0 2B 5.0 470M
14〜15秒の音声 2.1〜2.5秒 0.03秒
20秒の音声 2.7〜3.4秒 0.04秒

470M は 2B の 約70〜85倍 の速さで、20秒の音声を0.04秒で書き起こしました。

6. 考察

5.0 2B は、日本語の短文では 4.1 2B とほぼ同じ

5本中3本は一字一句同じ出力で、WER の合計も誤り 21 → 22 とほぼ変わりませんでした。違いが出たのは次の点です。

  • 英語のつづりが改善:前回の記事で課題として挙げた codeforconduit が、5.0 では codeofconduct と正しいつづりになりました。ただし正解テキストはカタカナの「コード・オブ・コンダクト」なので、WER の上ではどちらも誤りのままです。
  • 英字の表記が全角小文字に:4.1 は「生成AI」と出していたところを、5.0 は「生成ai」と出しています。レコーディング1・3でも同様で、5.0 の表記の癖のようです。
  • 文字化けが1か所:レコーディング4の「見直し�も」。日本語の1文字が複数のトークンに分かれて生成される途中で、ループ対策のパラメーターが後半のトークンを抑えてしまった可能性があります(未検証)。

レコーディング4で 5.0 2B の WER が悪化した(0.100 → 0.150)理由は、評価パイプラインが出力するアライメント(トークンごとの照合結果)で確認できます。

正解トークン 4.1 2B 5.0 2B 5.0 470M
AI AI ai(置換) ai(置換)
コード(最適化) コード コード 高度(置換)
規範 機関(置換) 機関(置換) 規範
コード codeforconduit(置換) codeofconduct(置換) 行動(置換)
オブ (脱落) (脱落) of(置換)
コンダクト (脱落) (脱落) コンダクト
— �(挿入)
誤り数 4 6 4

5.0 2B で増えた2つは、4.1 では正解していた「AI」が「ai」になったことと、文字化けの挿入です。また、英語を1語につなげて書くと、正解の「コード・オブ・コンダクト」(3トークン)に対して置換1・脱落2と数えられるため、つづりが正しくても誤り3つ分になります。

なお、モデルカードで 4.1 との比較が数値で示されているのは句読点の精度だけで、日本語の 4.1 対 5.0 の比較は公開されていません。今回の短文5本では、日本語での世代交代の効果は見えませんでした。

470M は「ぼそぼそ」発話にも強かった

このテストセットは、ニュース音声のようなはっきりした発話と差別化するため、5本とも意図的にやや不明瞭(ぼそぼそ)に発話した箇所を含めています。

その中でも差がはっきり出たのがレコーディング5です。4.1 2B と 5.0 2B は「データ統合基盤」「ターゲット層」を「データとおきばん/お気転」「あげてそう/あげっと層」と崩しましたが、470M は両方とも正しく書き起こし、この文の誤りはゼロでした。ほかにも、2B が外した「企業は」「習得」(レコーディング1)、「初年度」(レコーディング3)、「行動規範」(レコーディング4)を 470M は当てています。

一方で、470M が苦手だったのは日本語の中に混ざる英語由来の語です。レコーディング4で「コード」を「高度」、「コード・オブ・コンダクト」を「行動ofコンダクト」と書き起こしています。

また、どのモデルも外した箇所もあります。レコーディング2の「2023年度」は全モデルが「2013年度」、「経理部門」は 2B が「税理部門」・470M が「営部門」、レコーディング3の「議事録生成」は 2B が「記録生成」・470M が「持録生成」でした。

なぜ小さい方が強いのか(仮説)

2B は、音声を言語モデルに渡して文章を「生成」する仕組みです。音が曖昧なとき、「お気転」のように、それらしいけれど違う言葉を作ってしまうことがあります。

470M は CTC モデルで、音から直接文字を出します。言語モデルによる推測が入りにくく、そこに日本語データ(ReazonSpeech、YODAS など)での学習が効いた、と考えられます。英語のつづり(codeofconduct)は、2B の言語モデルの知識が効く場面なので、2B の方が正しく書けたのも筋が通ります。

WER の数え方についての注意

評価パイプラインの正規化は、全角→半角の変換はしますが、大文字小文字はそろえません。そのため、470M の「ai」と正解の「AI」は別物として数えられています。レコーディング1の 470M の誤り1つはこれで、実質的には全問正解です。前回の Watson STT Large の評価も同じ条件なので、比較としては公平です。

7. まとめ

  • Granite Speech 5.0 で日本語が正式対応になったので、前回と同じテストセットで 4.1 2B・5.0 2B・5.0 470M を比較しました。
  • 5.0 2B は 4.1 2B とほぼ同じ結果でした。英語のつづりは改善しましたが、全体の WER は変わりませんでした。
  • 5.0 470M TurboCTC は、誤り数が半分以下(9 対 22)、速さは約70倍以上でした。2B が崩した「データ統合基盤」「ターゲット層」も正しく書き起こしています。
  • 470M は、日本語の中に混ざる英語由来の語が苦手でした。

ただし、14〜20秒の短文5本、165トークンという小さなテストセットでの結果です。一方で、ぼそぼそとした発話を含む、意図的に厳しくした条件での結果でもあります。

同じ5本の音声で、Watson STT の Broadband → Large で誤りが 47 → 22 に減り、前回は「2B で Large と互角」に驚きました。今回はパラメーター数がその約4分の1の 470M が、誤りを 9 まで減らしました。

次回は、470M の「凄さ」をさらに掘り下げる予定です。長い会議音声で崩れないか、GPU のない PC で動くか、日本語と英語が混在する音声でどうなるか、などを試してみたいと思います。

付録

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?