概要
以下の続きとして精度を簡易計測します
速度と精度を元にグラフ化し、有用なモデルを絞り込みます
※ 注意 : 正確な計測ではないため、参考程度に留めるようお願い致します。
環境
前記事と同一
条件
- 速度
- 5分のファイルをその何割の時間で文字起こしできたかをパーセンテージで示す
- 処理時間(秒) / 300(秒)
- 精度
- 30秒程度の音源を5つ文字起こしし、原文とどの程度合致しているか
- これを CER という指標で計測します
- (挿入語数 + 置換語数 + 削除語数)/ 正解語数
- 計測ツールとして、 python の jiwer を用います
- normalize
- ある程度表記を統一するため、文字起こし結果を修正します
- 例
- スペースの削除
- 句読点の削除
- 漢数字などの表記を数字へ統一
- 補足
- 精度測定に用いるファイルは以下の特性を持ちます
- 非常に明瞭な滑舌
- 明確な間 (無音)
- 平易な文体
- 精度測定に用いるファイルは以下の特性を持ちます
バイアス
whisper にバイアスがかかっています。以下の手順で原文を作成したためです。
- 音声ファイルを whisper で文字起こしを実施
- [ 1 ] の誤っている部分などを手動で是正し原文とする
normalizeはしているものの後述する whisper の精度は、もう少し低く見て良いと思います
計測結果
- 原点に近いほど高性能となります
- Y軸 : 速度
- X軸 : CER
所管
体感、精度は 10% 以下が実用範囲と思いましたが、差異の内容次第かもしれません。
いずれも高速化する場合は gpu や mlx を必須としており、多くの計算資源が必要となる。
whisper
精度 : 高
速度 : 高
選択の第一候補と思われる。
バイアスがあるものの精度の安定感は高い。CPU での処理は低速だが、GPU や mlx などを用いた場合は非常に高速で実用範囲に入る。
バイアスを取り除いた場合、恐らく parakeet と同等もしくは若干高い精度を持つと推測する。
parakeet
精度 : 中 ~ 高
速度 : 高
whisper の精度に近い。gpu を用い model のロード時間を除外し推論時間 (約3秒) のみを見れば実質最速ではある。
ただし、部分がごっそり抜け落ちる欠落が発生しやすい。これは、無音部分の処理をスキップするという特性からの要因となる。
無音を削除した音声ファイル、無音部分で分割した複数の音声ファイル、へ変換するなどの前処理で欠落を防ぐ事が可能だが、精度の低下が見られた。
また、パラメータを調節する事で同様に欠落を回避する事が可能だが、音声ファイルの特性によって最適なパラメータは異なる。
グラフ中の mlx parakeet の精度は 9.71%
上述の回避策を行うと 12% ~ 15% 程度まで劣化する (ひらがなが多くなる)
これらから利用にあたり難易度が高い。
また元々日本語に対応しておらず、最上位モデルの 1.1B では日本語が利用できない。こちらが利用できるようになれば判断が変わる可能性は高い。
voxtral
精度 : 中
速度 : 中
正確な文字起こしを求める場合は候補には上がらない。LLM 的な特性を持っているため、音声ファイルの内容理解とその要約や操作などを目的とする場合には有益と思われる。
問題点としては、以下の要な変換がなされる
例
原文 | 誤変換 |
---|---|
時に | タイミングに |
という方に | という人に |
意外と多い | 非常に多い |
インテグレーター | 統合者 |
というように意味は通るが別の表現に変えられるケースがある。
プロンプトを与えてもこれは是正不可であったが、詳細に探索すれば何か方法があるかもしれない。
web speech api
グラフには記述していないが、 web browser 標準搭載の web speech api も精度は 2.69% と高い。
ただし、ファイルを直接投入できず、マイクでのリアルタイム文字起こしとなるため除外している。
ブラウザや関連機能のバージョンアップでの強制的な変化、ブラウザごとの実装の差異、環境による差異や利用できない状況、外部への音声データの送信など許容できるのであれば、無料で使用できるため選択肢としては良いと思われる。