🧰

STTとTTSの性能比較をするツール「Hikaku-Voice」を作った

に公開

どうも、Morixです。
最近仕事で音声AIアプリケーションを作ってます。とても楽しいです!

音声AIの重要な技術要素として絶対に外せないのが STT(Speech to Text)TTS(Text to Speech) です。
アメリカでは音声AIがとても流行っておりまして、その流れでSTTやTTSサービスを提供するプロバイダーがたくさん出てきています。
そして進化もとても速いです。どんどん新しいモデルが出てきます。キャッチアップが追いつきません。

ということで、STTとTTSの性能を簡単に比較することができるツール「Hikaku-Voice」というツールを作りました。
https://github.com/morix1500/hikaku-voice

Hikaku-Voiceで出来ること

Hikaku-Voiceでは、STT(もしくはTTS)のモデルを横に並べて性能比較ができます。
よくわからないと思うので動画を見ましょう。

次はSTTの比較画面です。比較したいモデルを登録しておくとこのようにマイクで喋ると、その書き起こし結果とレスポンス速度が表示されます。

次はTTSの比較画面です。比較したいモデルを登録しておくとこのようにテキストを入力すると、その音声変換結果とレスポンス速度(TTFB: Time to First Byte)が表示されます。

モデルの追加方法

細かい導入手順はREADME.mdを読んでほしいのですが、このツールの肝となるのは LiveKit Agents のプラグインです。

LiveKit Agentsについては以下のブログで紹介したので読んでください!
https://tacoms-inc.hatenablog.com/entry/2025/12/08/113000

このLiveKit AgentsではSTT/LLM/TTSがプラグインという形で簡単に追加することができます。この仕組みを今回使わせてもらってます。
つまり、このツールのモデル追加は次のステップで簡単に追加できます!

  1. LiveKit Agentsのプラグインをインストールすること
  2. そのプラグイン設定をすること

こんな感じですね↓
使用プラグインに別名をつけられるので、同じSTT/TTSプロバイダの違うモデルを同時に比較することもできます。

stt_plugins = {
    "Deepgram Nova 2": deepgram.STT(model="nova-2-general", language="ja"),
    "Deepgram Nova 3": deepgram.STT(model="nova-3-general", language="ja"),
    "OpenAI Realtime": openai.STT(language="ja", use_realtime=True),
}

なぜ作ったのか

冒頭でも述べましたが、STT/TTSのキャッチアップはとにかく大変です。日々新しいモデルが出てきます。
なぜ新しいモデルに追従したいかというと、STTの場合は音声の認識精度や速度の改善、TTSの場合は音声品質の向上や速度の改善がありえます。
新しいモデルを自社の製品に組み込んでみて、精度検証やレイテンシー検証をするのは大変です。
またこういう検証はエンジニアしかできないのも課題です。PdMでも簡単にできる環境が欲しかったです。

ということでGoogle Antigravityの検証ついでに2日で作りました。
完成直前にRateLimitに到達し、最後はClaude Codeに頼りました・・・!

最後に

音声AIアプリを作ってる人、みんな困ってるんじゃないでしょうか!?
ぜひ使ってみてよかったらStarください。

Discussion