プロダクト開発中
よりそい字幕
聞こえにくさを抱える方の会話を支えるための、リアルタイム音声認識による字幕アプリ。音声認識は端末内で行い、雑音・残響・距離などの条件ごとに精度を測りながら改善に取り組んでいます。
課題
会話の場面で音声を文字として確認できれば、聞こえにくさがある方も会話に参加しやすくなります。 一方で、実際の会話は静かな部屋でマイクに向かって話すとは限りません。話者との距離、部屋の残響、小さな声、周りの雑音、話す速さなど、音声認識にとって厳しい条件が日常的に発生します。
何を作っているか
スマートフォン上で会話をリアルタイムに字幕として表示する、会話支援のためのアプリです。 単なる文字起こしではなく、「その場の会話についていける」ことを目的にしています。
技術的アプローチ
- 端末内で動く音声認識:標準の設定では、音声認識を端末内(sherpa-onnx)で行い、通信環境に左右されにくい構成にしています。
- 音声認識モデル:NVIDIA の Parakeet(CTC 方式)を使っています。選んだ理由は、下の「研究と検証」の比較結果です。
- 発話区間の検出:発話かどうかの判定(VAD)は、小さな声を聞き取りやすくする自動ゲインで増幅する前の音で行います。増幅した音で判定すると、無音まで発話として録音してしまうためです。
- 自動では書き換えない AI の候補提案:誤認識らしい箇所に、言い換えの候補を最大3つ表示し、選ぶのは利用者です。字幕の文字をクラウドの AI に送るため、既定ではオフで、同意したうえで、Wi‑Fi に接続しているときだけ動きます。
研究と検証
評価のしかた
- 評価音声:公開されている日本語の音声(Mozilla Common Voice の150人・150発話)に、雑音や部屋の響きを計算で重ねて、11の条件をそろえた評価音声を作っています。条件は、台所・テレビ・オフィス・カフェなどの雑音、突発的な物音、話者との距離(0.5m・1.5m・2.5m)、大きな部屋の強い残響、アクリル板越しの窓口です。
- 指標:文字誤り率(CER)で測ります。正解の文字数に対して、ほかの文字に置き換わった・抜けた・余分に入った文字の割合で、低いほどよい指標です。
- 同じ条件で比べる:モデルや設定を変えるたびに、同じ評価音声・同じ採点ルール・アプリと同じ設定で、文字誤り率・処理速度・メモリを自動で測ります。
- 実機で確かめる:PC での評価と端末での結果は一致しないことがあるため、改善の手法は実機(Android)でも同じ評価を行い、良くなったものだけを採用しています。
いまの結果
モデルの比較と、条件ごとの文字誤り率
端末内で動く2つの日本語音声認識モデルを、同じ評価音声・同じ採点ルールで比べました。11条件すべてで Parakeet のほうが誤りが少なく、全体では誤りが約28%減ったため、Parakeet を採用しています(PC での評価。1発話60文字以内の短い発話、各条件28発話。2026年9月・社内評価)。
| 条件 | SenseVoice | Parakeet(採用) |
|---|---|---|
| テレビの音(リビング) | 13.15% | 5.74% |
| オフィスの空調 | 13.33% | 6.67% |
| 突発的な物音 | 12.04% | 7.41% |
| 台所の生活音 | 12.59% | 8.33% |
| 話者まで 0.5m の響き | 12.78% | 9.26% |
| カフェの雑音 | 13.89% | 9.44% |
| オフィスの机まわりの雑音 | 16.85% | 10.00% |
| 話者まで 1.5m の響き | 16.67% | 11.11% |
| アクリル板越しの窓口 | 17.04% | 16.11% |
| 話者まで 2.5m の響き | 18.15% | 17.59% |
| 大きな部屋の強い残響 | 22.96% | 21.11% |
| 11条件全体 | 15.40% | 11.16% |
雑音や響きを重ねる前の同じ発話では、Parakeet の文字誤り率は 7.04% です。
また、NVIDIA が公表値に使ったのと同じ評価音声のうち、Common Voice 8.0 のテスト音声(4,263発話)で、前処理を加えない Parakeet を測ると 7.29% でした。NVIDIA の公表値(アプリと同じ CTC 方式で 7.2%)と同じ水準で、測り方に大きなずれがないことを確かめています(採点ルールが少し違うため、完全には一致しません。PC での評価)。
生活雑音では、重ねる前とほとんど変わりません。精度を大きく落とすのは、残響・距離・アクリル板などの遮蔽で、2つのモデルの差も小さくなります。そのため、これらの条件への対策を優先しています。
※ 日本語の文字誤り率は、「行く」と「いく」のように読みは合っていても表記が違えば誤りとして数えるため、字幕の意味が通じなくなる誤りは、この数字より少なくなります。
話者分離:「誰が話したか」をリアルタイムで見分けるため、商用利用が可能なライセンスの手法だけを候補にして比較を進めています。
参考にした公開資料
- NVIDIA Parakeet(日本語 CTC モデル、CC BY 4.0)
- sherpa-onnx(Apache License 2.0)/Silero VAD(MIT License)
- Mozilla Common Voice 日本語データセット(CC0)
現在の状態
開発中です。条件別の評価と実機での確認を行いながら改善を続けています。
今後
残響・距離・遮蔽の条件での精度を上げることに取り組みます。
つかっている技術
- Android
- Kotlin
- 音声認識
- オンデバイス処理
- アクセシビリティ
- iOS
- Swift
- SwiftUI


