台湾語音声認識
このページは音声の半分についてです。なぜ現場に台湾語を聞き取れるモデルが要るのか、MediaTek がすでに終えていた工程はどれか、私たちが埋めた工程はどれか、そして試したもののまだ形になっていないもの。Hugging Face に置いた 4 つのファイルのうち 3 つは、この仕事から生まれました。
なぜ必要なのか
地域拠点で、介護職員が高齢者の隣に座り、タブレットを持っています。昨日はよく眠れましたか。夜中に起きますか。高齢者が答えます。職員は聞きながら、その答えを様式の文言に置き換えながら、下を向いて入力します。高齢者は、その人のつむじに向かって話すことになります。
しかも高齢者が話すのは台湾語です。台湾語と華語が同じ一文に混ざることもよくあります。「わたしの足がね、sng(だるい)」。職員本人は完全に理解しています。ただ、入力するには先に華語へ直さなければなりません。
私たちが欲しかったのは単純なことです。顔を上げて、ちゃんと人と話してもらう。記録は勝手にできあがる。それには台湾語を聞き取れる音声モデルが必要でした。既製の音声認識は華語は得意で、台湾語は苦手です。そして高齢者が、システムに合わせて華語に切り替えてくれることはありません。
台湾語を聞き取れるモデルは、すでに台湾の誰かが作っていました。私たちが埋めたのは「現場にある PC に入らない」という部分です。
私たちの担当はどの工程か
Breeze-ASR-26 は MediaTek Research が訓練し公開したモデルで(Apache-2.0、OpenAI Whisper large-v2 由来)、台湾語と台湾なまりを聞き取ります。訓練は私たちではありません。ここは明記しておきます。
ただ 3.1 GB あり、快適に動かすには GPU が要ります。拠点にある 6 年前の PC には入りませんし、職員のスマートフォンなら言うまでもありません。だから残りを私たちがやりました。小さくして、速度とメモリを実測して、3 種類の機械向けに 3 つの版を作り、ネット上に戻しました。
3 つの版
違いはどのハードウェアで動かすかだけです。すべて Apache-2.0。商用利用も改変も、許可は不要です。
サーバーがあるなら、これが一番速い
古いノート PC 1 台でも動く。ドラッグするだけ
スマートフォンとブラウザで動く台湾語認識
5 秒を超える音声なら、圧縮前後の違いは分かりません(元モデルに対する文字誤差は約 3.6%)。訪問時、職員の手元にあるのはスマートフォン 1 台だけということも少なくないので、いちばん遅い版も必要でした。
公開しなかったもの
237 MB まで縮めて、スマートフォンで直接動かす試みもしました。進展は本物でした。実際の長い音声で、元のモデルとの差は 63% から 38.7% まで縮まりました。しかし元のモデル自身は 14% です。まだ差が大きいので、公開していません。
途中で書き残すに値する失敗もありました。最初の試みでは、小さいモデルに大きいモデルの「言い回し」を真似させすぎて、かえって悪くなりました。正解そのものを主役に戻し、真似は補助に回してから前進が始まりました。こうした記録も公開します。きれいな数字より、他の人の助けになるからです。
行き詰まっているのは訓練技法ではありません。台湾語の録音が少なすぎることです。公開ソースを合わせても数十時間、しかも大半は原稿を読んだ短文で、高齢者が実際に話す言葉とはかなり違います。
もっと根本的な問題もあります。話される台湾語を忠実に書き表すのは台羅(Tâi-lô)ローマ字で、華語漢字で書くと台湾語の読みが失われます。漢字で「斷腦筋」と書かれても、読む人はそれが脳卒中を指すと分かりません。だからいま作っているのは台羅を出力する版です。まだ完成していません。できたら、このページに載ります。
製品の中での役割
音声から出てくる文字は、依然として現場の言い方のままです。「皮蛇」は「皮蛇」のままで、「帯状疱疹」に戻して初めて記録に入ります。それは別のモデルの仕事です。両方そろって、話された一文が使える記録になります。
台湾語を聞き取れるモデルは、すでにありました。私たちはそれを、現場にある PC に入るようにしました。
3 つの版はすべて Hugging Face 上、Apache-2.0 です。各 model card に計測方法・限界・適した用途を記載しています。上流は MediaTek Research の Breeze-ASR-26。訓練は彼らの仕事で、私たちは量子化・計測・形式変換を担いました。