😎

CER(Character Error Rate:文字誤り率)ってなんだ?音声認識・OCR評価の必須指標を徹底解説

に公開

この記事の目的

音声認識やOCRの精度を表す「CER」という指標。WER(単語誤り率)は聞いたことがあっても、CERはピンと来ない人も多いだろう。この記事では、CERの定義から計算方法、WERとの使い分け、そして日本語・英語・中国語の代表的なベンチマークまで、実務で使えるレベルで解説する。

対象読者

  • 音声認識モデルの評価方法を知りたいエンジニア
  • OCRシステムの精度測定をしたい開発者
  • 論文や技術記事のベンチマーク結果を正しく読み解きたい人

到達目標

  • CERの定義と計算方法を理解する
  • WERとの違いと使い分けを把握する
  • 言語別の代表的ベンチマークを知る

TL;DR

  • CERは「文字レベル」で誤りを測定する指標、WERは「単語レベル」
  • 計算式は同じ: (置換 + 削除 + 挿入) / 正解文字数
  • 日本語・中国語ではCERが標準(単語の境界がないため)
  • 英語ではWERが一般的だが、CERも併用される
  • 1〜5%なら優秀、10%以上は改善の余地あり

CERとは何か

CER(Character Error Rate:文字誤り率)は、音声認識(ASR)やOCR(光学文字認識)の精度を評価する指標だ。

Hugging Faceの公式定義を見てみよう。

Character error rate (CER) is a common metric of the performance of an automatic speech recognition system. CER is similar to Word Error Rate (WER), but operates on character instead of word.

(文字誤り率(CER)は、自動音声認識システムの性能を測る一般的な指標である。CERはWERと似ているが、単語ではなく文字単位で動作する。)

出典: Hugging Face - CER Metric

要するに、システムが出力したテキストと正解テキストを「1文字ずつ」比較して、どれだけ間違っているかを数値化したものだ。

CERの計算方法

CERの計算式は非常にシンプルだ。

CER = (S + D + I) / N

ここで:

  • S(Substitution): 置換エラー(間違った文字に置き換わっている)
  • D(Deletion): 削除エラー(あるべき文字が欠落している)
  • I(Insertion): 挿入エラー(余計な文字が追加されている)
  • N: 正解テキストの総文字数

この計算には「レーベンシュタイン距離」(編集距離)というアルゴリズムが使われる。2つの文字列を変換するのに必要な最小の編集操作数を求めるものだ。

具体例で理解する

正解: machine learning
出力: machin lerning

この場合:

  • "e" が削除されている(machine → machin): 1削除
  • "a" が欠落している(learning → lerning): 1削除
  • 合計エラー = 2

正解の文字数 = 16(スペース含む)

CER = 2 / 16 = 0.125 = 12.5%

Pythonでの実装例

# Levenshteinライブラリを使う方法
from Levenshtein import distance

def calculate_cer(reference, hypothesis):
    edit_distance = distance(reference, hypothesis)
    cer = edit_distance / len(reference)
    return cer

# 使用例
ref = "machine learning"
hyp = "machin lerning"
cer = calculate_cer(ref, hyp)
print(f"CER: {cer:.3f}")  # CER: 0.125

# PyTorch Metricsを使う方法
from torchmetrics.text import CharErrorRate

cer_metric = CharErrorRate()
references = ["machine learning", "artificial intelligence"]
hypotheses = ["machin lerning", "artifical inteligence"]
cer = cer_metric(hypotheses, references)
print(f"Batch CER: {cer.item():.3f}")

CER vs WER:どう使い分けるか

CERとWERは「親戚」のような関係にある。計算式は同じで、対象が違うだけだ。

項目 CER WER
評価単位 文字 単語
粒度 細かい 粗い
1文字ミスの影響 そのまま1エラー 単語全体が1エラー
典型的な数値関係 低い 高い(CERの3〜4倍)

なぜCERとWERで数値が違うのか

例を見てみよう。

正解: The cat sat on the mat
出力: The cat sit on the mat

WERの場合: "sat" → "sit" で1単語エラー。全6単語中1エラーなので WER = 16.7%

CERの場合: "a" → "i" で1文字エラー。全22文字中1エラーなので CER = 4.5%

1文字間違えただけでも、WERでは「単語丸ごと」がエラーとしてカウントされる。そのため、一般的にWERはCERの3〜5倍高い数値になる

言語による使い分け

ここが重要だ。

英語: WERが主流。単語という概念が明確で、スペースで分かち書きされているため。

日本語・中国語: CERが標準。なぜなら、単語の境界がないからだ。

Unlike English, Japanese doesn't use whitespace (the spaces between words in a sentence) to separate words, making Word Error Rate (WER) less relevant as a benchmark. Instead, Character Error Rate (CER) becomes the primary metric for evaluating transcription quality.

(英語と異なり、日本語は単語を区切るスペースを使わないため、WERはベンチマークとしてあまり適切ではない。代わりに、CERが文字起こしの品質を評価する主要な指標となる。)

出典: aiOla - Jargonic Japanese ASR

日本語で「今日は良い天気ですね」をどこで区切るかは、形態素解析器によって異なる。そのため、単語単位のWERは不安定になりやすい。文字単位のCERなら、この問題を回避できる。

最新の研究が示すCERの優位性

2024年10月に発表された論文「Advocating Character Error Rate for Multilingual ASR Evaluation」(arXiv:2410.07400)は興味深い主張をしている。

We show that CER correlates more closely with human judgments than WER, even for English.

(CERは英語においてさえも、WERよりも人間の判断とより強く相関することを示した。)

この研究では、マラヤーラム語、英語、アラビア語という異なる形態素特性を持つ3言語で人間評価を実施。その結果、多言語ASR評価ではCERを優先すべきという結論に至っている。

CERの目安:どのくらいなら良いのか

実務的な目安を示しておこう。

CER範囲 評価 適用シーン
1〜2% 優秀 クリーンな録音環境、プロ品質のASR
3〜5% 良好 エンタープライズ向け、実用レベル
5〜10% 許容範囲 ノイズ環境、多少の後編集が必要
10%以上 要改善 ユーザー体験に影響、業務利用は厳しい

ただし、これはあくまで目安だ。ドメイン、言語、音声品質によって大きく変わる。自社のベースラインと比較することが重要だ。


言語別ベンチマーク:代表的なデータセットとスコア

ここからは、日本語・英語・中国語の代表的なベンチマークと、主要モデルのスコアを紹介する。

日本語ベンチマーク

日本語ASRでは、以下のデータセットがよく使われる。

代表的なデータセット

データセット 概要 用途
JSUT basic5000 高品質な朗読音声(TTS用に録音) ASRのクリーン音声評価
Common Voice(日本語) クラウドソーシングで収集、やや雑音あり 汎用評価
ReazonSpeech テレビ放送から収集(感情・BGM・早口含む) 実環境評価

主要モデルのCER比較

ReazonSpeechプロジェクトの論文データより:

モデル JSUT basic5000 CER (%) Common Voice v8.0 CER (%)
ReazonSpeech(ESPnet) 8.23 9.93
Whisper Large v2 同等レベル 同等レベル

出典: ReazonSpeech: A Free and Massive Corpus for Japanese ASR

また、Whisperのファインチューニング研究(arXiv:2412.10705)からは以下のデータがある:

モデル CER (%)
Whisper-Tiny(ベースライン) 32.7
Whisper-Tiny + LoRA 20.8
Whisper-Tiny + E2E Fine-tuning 14.7
Whisper-Base 20.2

注目すべきは、ファインチューニングによってWhisper-TinyがWhisper-Baseを上回った点だ。小さなモデルでも、適切なデータで訓練すれば大きなモデルに勝てる。

NeMo Fast ConformerとWhisperの比較

NVIDIA NeMoのGitHub Discussion #8473で報告されたベンチマーク:

The Fast Conformer model archives better inference accuracy than Whisper v1/v2/v3, while being as fast as Whisper Tiny.

(Fast Conformerモデルは、Whisper Tinyと同等の速度でありながら、Whisper v1/v2/v3すべてより高い推論精度を達成している。)

JSUT-bookデータセット(1時間の朗読音声)での評価で、ReazonSpeech-NeMo v2は精度・速度の両面でWhisperを上回る結果を示している。

英語ベンチマーク

英語では主にWERが使われるが、CERも補助的に報告される。

代表的なデータセット

データセット 概要 規模
LibriSpeech オーディオブックから作成 約1,000時間
GigaSpeech YouTube等から収集 10,000時間
TED-LIUM 3 TEDトーク 452時間
Common Voice クラウドソーシング 多言語対応

Open ASR LeaderboardでのWER比較(2025年10月)

英語はWERで評価されることが多いが、参考までに主要モデルのスコアを示す。

モデル 平均WER (%) 備考
NVIDIA Canary Qwen 2.5B 5.63 1位
IBM Granite Speech 3.3 8B 5.85 2位
NVIDIA Parakeet TDT 0.6B v2 6.05 超高速
OpenAI Whisper Large v3 7.01 定番

出典: Open ASR Leaderboard (arXiv:2510.06961)

Libri-LightデータセットでのCER

半教師あり学習の評価では、CERも使われる。

For the semi-supervised setting, we evaluate the quality of learned acoustic representations with little annotated data. Models can be trained either with character or phonetic targets using limited data and measured by either Character Error Rate (CER) or Phoneme Error Rate (PER).

出典: Libri-Light (arXiv:1912.07875)

中国語ベンチマーク

中国語も日本語と同様、CERが標準指標だ。

代表的なデータセット

データセット 概要 規模
AISHELL-1 高品質な朗読音声 178時間
AISHELL-2 AISHELL-1の拡張版 1,000時間
WenetSpeech 大規模マルチドメイン 10,000時間+
Common Voice(中国語) クラウドソーシング 継続拡大中

AISHELL-1でのCER比較

モデル/アプローチ テストセット CER (%)
Conformer-AED(非LLM) 5.9
SLAM-ASR(LLM) 4.5
SLAM-ASR + LoRA 4.0
PYG-ASR + PYGEC 3.0
HuBERT + Baichuan2-7B-Chat 3.17

出典:

興味深いのは、LLMをデコーダに使うことで大幅にCERが改善している点だ。Conformer-AEDの5.9%から、LLM + LoRAで4.0%、さらに誤り訂正を加えると3.0%まで下がっている。

また、中国語ASRの研究では以下の傾向が指摘されている:

The ASR performance positively correlates to the LLM's performance in Chinese NLP tasks.

(ASRの性能は、LLMの中国語NLPタスクでの性能と正の相関がある。)

つまり、中国語を上手く扱えるLLMほど、音声認識でも良い結果を出す傾向にある。


CERを使う際の注意点

1. 正規化の影響

テキストの正規化方法によってCERは大きく変わる。

  • 句読点を含めるか
  • スペースをカウントするか
  • 大文字小文字を区別するか
  • 数字を漢字/アルファベットに変換するか

評価プロトコルを明確に定義し、一貫して適用することが重要だ。

2. CERが100%を超えることがある

挿入エラーが多い場合、CERは100%を超える。

正解: ABC
出力: ABC12345

この場合、挿入5文字 / 正解3文字 = 166.67%

これを避けるために、分母を max(N, 出力文字数) にする正規化手法もある。

3. 意味の違いを捉えられない

「car」を「scar」と誤認識した場合、CERでは1文字のエラーだが、意味は大きく異なる。逆に「procesing」を「processing」と直す場合、1文字の違いで意味への影響は小さい。

CERは機械的な評価であり、意味的な重大さは考慮しない。これがCERの限界だ。


まとめ

CER(文字誤り率)は、音声認識やOCRの精度を文字単位で評価する指標だ。

重要ポイント:

  • 計算式: (置換 + 削除 + 挿入) / 正解文字数
  • 日本語・中国語ではCERが標準(単語境界がないため)
  • 英語ではWERが主流だが、CERも併用される
  • 最新研究はCERが人間評価とより強く相関することを示唆

言語別ベンチマーク目安:

  • 日本語: JSUT、Common Voice、ReazonSpeechで8〜10%程度なら良好
  • 英語: LibriSpeechでWER 5〜7%、CER換算で1〜2%程度が最先端
  • 中国語: AISHELL-1で3〜5%なら競争力あり

モデルを選定する際は、WERだけでなくCERも確認すること。そして、自分のドメインとデータに近いベンチマークで評価されているかを必ずチェックしよう。


参考資料

Discussion