Apple Siliconで動作するparakeet-mlx、そして日本語文字起こしモデルの「mlx-community/parakeet-tdt_ctc-0.6b-ja」があるので、これをFFTrans ProのMLX Whisperと置き換えてみたプロトタイプを作ってみました。

parakeet-mlxもFFmpeg依存ですし、モデルロードが初回ダウンロードされる方式のままですが、動作確認にはこれで良いでしょう。
ちなみにFFTrans Proは全てのモデルを内包しているので、アプリ自体のEntitlementsでもネットワークアクセス自体を禁止し、Sandbox内での動作としています。
ですので、今回のプロトよりも速度的には若干不利になりますし、FFTrans Proは多言語対応で最初のほうの音声で言語判定をしていたりと、全く同一条件というわけではないことをご理解ください。
まずは気になる処理時間ですが、13分弱のニュース動画を文字起こししてストップウォッチで計測しました。
マシンはMac Studio M2 Maxです。
・parakeet-mlx : 約1分
・FFTrans Pro製品版 : 約3分
ファイルI/Oや話者分離が入りますから、よく言われるほどの「爆速」とはいきませんが、それでもたしかにかなり高速です。
ちなみにメモリ消費も見てみましたが、parakeet-mlxが12GBほど、FFTrans Proが9GBくらいでした。
CPU負荷も若干parakeet-mlxのほうが多めですが、GPU依存が強いのでそこは大差ないと思って良いでしょう。
ちなみにparakeet-mlx単体での文字起こしだと5分の音声をたったの5秒で実行できます。
そして文字起こしの質ですが、parakeet-mlx単体で動かしたものからすると、FFTrans ProのBERTによる句読点補完とカスタム辞書が功を奏した形になりますので、「そこそこ使える」レベルにはなっています。
ただ気になるのは稀に省略したり、全く異なるわけではない置き換えのようなハルシネーションが起こることでしょうか。
具体例を挙げてみましょう。
[ parakeet-mlxでの挙動 ]
Person 3: ただいま高速メトロ9号線前。(大阪メトロ中央線)
Person 10: 大雪ないですからね、夜中の万博。(こんな経験ないですからね、夜中の万博)[ parakeet-mlxでの漏れ ]
波瑠: こんにちは波瑠です。
川栄李奈: 川栄李奈です。
どれをたしかに聞き取りにくい部分が多いのですが、表記揺れというよりは勝手な置換が起きやすい傾向にあるようです。
読みがちょっと揺れている程度ならカスタム辞書で吸収できるところもある(実際、今回の結果もカスタム辞書を適用されている)のですが、全く違ったり抜け落ちているとさすがに手の施しようがありません。
ただ13分ほどの音声を300文字に要約してみると、どちらも結果はほぼ同じになりますので、おおまかに音声の概要を知りたいというニーズであればparakeetのメリットはあるのでしょう。
ちなみにFFTrans Technologyを経ない「素のparakeet」出力は正直かなり厳しい印象です。
まずはいちばんまずい、長め(といってもさきほどの13分)の音声だと”意図せぬ要約”のような形で結果が返ってきてしまいます。
きのう午後11時過ぎ、駆け足で現場に向かう取材クルー遠くでサイレンが鳴っているたどりついた先でカメラが捉えたのはこれは午後9時半ごろ、万博会場最寄りの夢洲駅前の様子このときはまだ人が流れているように見えるが10分後、夢洲駅の入り口には人だかりがそして午後10時ごろには人があふれかえっているとは思うんですけどきのう午後9時28分ごろ大阪メトロ中央線がコスモスクエア大阪公園間での設備点検の影響で搬送されたこれは午後11時半ごろに撮影された映像大屋根リングの下にあるベンチには多くの人が確認できる博覧会協会は中央線の運転再開まで来場者が会場内で待機できるよう東ゲートを開放したという大阪府の吉村知事は自身のxで来場者におわびするとともにこう投稿した少しでも快適に過ごしていただけるようにまずは大阪ヘルスケアパビリオンを開放いたします会場全体を災害対応時と同様に対応するよう努めますけれども午前2時万博会場内に出来ていた行列音楽も聞こえてくるパビリオンだけでなく飲食店も臨時で営業を始め帰れなくなった人たちにアルコールを販売していた自動販売機もスマートフォンで撮影しているそんな中、アナウンスが響き渡るきのう午後9時半ごろから運転見合わせとなっていた大阪メトロ中央線は発生からおよそ8時間が経過した午前5時25分ごろ全線で運転が再開された。
特に「アルコールを販売していた自動販売機もスマートフォンで撮影している」の部分は完全に事実誤認となってしまっています。
実際は
店舗でアルコールを販売していた。
水などを販売している自動販売機もスタッフさんの頑張りで補充された。
朝日が昇り始めた様子をスマートフォンで撮影している。
この3つの文章がなぜか結合されたような状態になっているわけです。
話者分離などで音声を短く分割すればほぼ起こらなくなりますが、前述の漏れや誤表記もこの挙動が関係していそうには思えます。
もう少し短い音声なら問題なく動作しますが、句点が付きづらい傾向で、ひらがなが多めなので、だいぶ読みづらいです。
じゃあ、始めます、ちょっとまだ来られてない方もいらっしゃるんですけど、ボイスランチjp始めます、はーい、日曜日にお集まりいただきまして、ありがとうございます、きょう、久しぶりにオフラインということで、きょうはスペシャルなゲスト、お2人、来ていただいておりますということで、きょうちょっとトピックにまいりますけれども、ボイススローの始業であるブレゼンリームさんと、あとセールスフォースのカンボセオナルデザインのディレクターであるグレッグベネスさんに来ていただいてますということで、日本に来ていただいてありがとうございますきょうはちょっとこのお2人にまたあとでいろいろと聞こうというコーナーがありますので、そこでまたいろいろと聞きたいと思います。
ちなみに上記をFFTrans Proの句読点補完とカスタム辞書にかけると以下のように修正されます。
ひらがな率が高いせいで若干、句読点補完がおかしい部分はありますが、だいぶ改善されると思います。
じゃあ始めます。ちょっとまだ来られてない方もいらっしゃるんですけど、VoiceLunchJP始めますはーい。日曜日にお集まりいただきましてありがとうございますきょう。久しぶりにオフラインということできょうはスペシャルなゲストお2人来ていただいておりますということできょう、ちょっとトピックにまいりますけれども、Voiceflowの始業であるBraden ReamさんとあとSalesforceのカンボセオナルデザインのディレクターでGreg Bennettさんに来ていただいてますということで日本に来ていただいてありがとうございま。す。きょうはちょっとこのお2人にまたあとでいろいろと聞こうというコーナーがありますので、そこでまたいろいろと聞きたいと思います。
ちなみに上記のFFTrans Pro製品版の結果は以下のとおりです。
Person 1: はいじゃあ始めます。
Person 1: ちょっとまだ来られてない方もいらっしゃるんですけど。
Person 1: おい、ストランチ。
Person 1: JP始めます。
Person 1: 皆さん、見ております。
Person 1: 日曜日にお集まりいただきましてありがとうございます。
Person 1: 今日は久しぶりにオフラインということで、今日はスペシャルなゲストをお二人。
Person 1: していただいておりますということで
Person 1: 今日ちょっとトピックに回りますけれども。
Person 1: VoiceflowのCEOであるBraden ReamさんとあとSalesforceのカンパニエンスデザインのディレクターであるGreg Bennettさんに来ていただいてます。
Person 1: ということで日本に来ていただいてありがとうございました。
Person 1: 今日はこのお二人にまた後でいろいろと聞こうというコーナーがありますので、そこでまたいろいろと聞きたいと思います。
ただparakeet-mlxの魅力もたしかにあります。
なにより非常に高速な文字起こしは長時間の音声では大きなメリットです。
まだ多言語に対応していなかったり、MLX-Whisper同様のFFmpeg依存、モデルロードがネットワーク優先だったりする問題はありますが、それは時間(と手間)が解決してくれるでしょう。
トータルでparaskeet-mlxのほうが優位だという時期が来たと判断すれば、FFTrans Proのparakeet版をすぐにリリースできる準備はほぼ整ったと言って良いかと思います。
しかし現状は後作業を減らし、極力誤認を防ぐという点で、まだMLX Whisperのほうが有利なのではないかなと思う次第です。
(9/10追記)
英語とヨーロッパ言語対応の「mlx-community/parakeet-tdt-0.6b-v3」も試してみました。
結論から言うと、こちらはもはやMLX-Whisperと同等レベルの品質を実現しています。
英語のみのはずのv2よりもv3のほうが細かな単語の精度も高かったです。
以下が実際の文字起こし結果で、FFTrans Pro製品版と全て同じ結果でした。
1
00:00:00,030 –> 00:00:01,569
Person 1: Why do locals hate tourists?2
00:00:01,569 –> 00:00:08,218
Person 1: We’ve seen people in Barcelona spraying visitors with water guns and anti-tourism protests in Mexico that turned violent.3
00:00:08,218 –> 00:00:17,890
Person 1: Similar ideas have been picking up in other European cities too, but tourism contributes a lot to economies around the world and some countries are desperate for more visitors.
速度も6分弱の音声をparakeetのv3モデルで25秒、FFTrans Pro製品版で55秒でした。
ただヨーロッパ言語対応と言いつつ、文字起こし結果に検出した言語を返してこないので多言語対応はやはり厳しいです。
作るとしたら英語専用のFreeバージョン、日本語専用のProバージョンといった形にするしか、現段階ではないだろうなと思います。
