Abliteratedモデルルーターを公開しました。今すぐ無料でお試しください。

公開 · AllModels

リアルタイム音声認識プロバイダーを1つのAPIで

AllModels経由で、複数プロバイダーのSTTモデルを使って文字起こしできます。WebSocketで音声をストリーミングしたり、OpenAI互換・ElevenLabs互換のSDKを使ったりでき、文字起こしパイプラインを作り直さずにモデルを切り替えられます。

AllModelsは独立したサービスであり、ルーティング先のモデルを提供するプロバイダーとは提携関係になく、その承認や後援も受けていません。

統合型音声認識APIとは

統合型の音声認識(STT)APIとは、さまざまなプロバイダーのモデルで音声を文字起こしできる単一のインテグレーションです。Deepgram用、AssemblyAI用、Soniox用、OpenAI用とクライアントを個別に書く代わりに、アプリケーションは1つのエンドポイントと1つのAPIキーでやり取りします。どのプロバイダーが文字起こしするかは、選んだモデルで決まります。AllModelsはこの種の統合型STT APIです。deepgram/nova-3、assemblyai/universal-3-5-pro-realtime、soniox/stt-rt-v5のようなモデルIDを送ると、AllModelsが音声をそのプロバイダーにルーティングし、文字起こし結果を返します。

AllModelsの仕組み

AllModelsのSTTカタログにあるすべてのモデルにはprovider/model形式のIDがあります。認証はAllModelsのAPIキー1つで済み、プロバイダーごとに管理していた個別のキーや請求アカウントは不要になります。AllModelsでは、同じモデルを次の3つの方法で呼び出せます。

  • ネイティブWebSocket:wss://api.allmodels.io/v1/stt。キャプチャした生の音声フレームを順次送り、モデルの背後にどのプロバイダーがあっても、統一された形式のstt.transcript.partialイベントとstt.transcript.finalイベントを受け取ります。
  • OpenAI互換:https://api.allmodels.io/oai。公式のOpenAI SDKのベースURLをここに向ければ、ファイルにはaudio.transcriptions.createを、ライブ音声にはリアルタイムクライアントをそのまま使えます。
  • ElevenLabs互換:https://api.allmodels.io/el。公式のElevenLabs SDKのベースURLをここに向ければ、リアルタイム文字起こしを含む音声認識メソッドをそのまま呼び出せます。

3つとも同じカタログにアクセスします。コードベースですでにOpenAIやElevenLabsのSDKを使っている場合は、ベースURLとAPIキーを変えるだけでAllModelsに移行できます。

ライブ音声と完成したファイル

マイク、通話、音声エージェントでは、WebSocketで音声をストリーミングし、話者が話している最中から途中の文字起こし結果を読み取れます。録音がすでに揃っている場合は、1回のHTTPリクエストでアップロードして全文の文字起こしを受け取ります。別のSTTモデルを使うにはモデルIDを変えるだけで、APIキー、エンドポイント、クライアントのコードはそのままです。

どのクライアントからでもリアルタイム音声を文字起こし

クライアント、モード、言語を選んでください。ハイライトされた行は、AllModelsのベースURLと、別のモデルを試すときに変更するモデルの値です。

クライアント
モード
言語

ネイティブWebSocket(ストリーミング) JavaScript · Node.js · ws

wss://api.allmodels.io/v1/sttに接続し、16 kHzのPCM音声をバイナリフレームで送って、途中結果と確定した文字起こしを読み取ります。 STTドキュメント。

import { readFile } from "node:fs/promises";
import WebSocket from "ws";

const url = new URL("wss://api.allmodels.io/v1/stt");
url.searchParams.set("model", "deepgram/nova-3");
url.searchParams.set("audio_format", "pcm_16000");
url.searchParams.set("language", "en");
url.searchParams.set("commit_strategy", "manual");

const ws = new WebSocket(url, {
  headers: { Authorization: `Bearer ${process.env.ALLMODELS_API_KEY}` }
});

ws.on("message", (data) => {
  const event = JSON.parse(data.toString());
  if (event.type === "stt.transcript.partial") console.log("partial:", event.text);
  if (event.type === "stt.transcript.final") {
    console.log("final:", event.text);
    ws.send(JSON.stringify({ type: "stt.session.close" }));
  }
});

ws.on("open", async () => {
  const audio = await readFile("speech-16khz.pcm");
  for (let offset = 0; offset < audio.length; offset += 3200) {
    ws.send(audio.subarray(offset, offset + 3200));
  }
  ws.send(JSON.stringify({ type: "stt.audio.commit" }));
});

互換インターフェース

チームが使い慣れたクライアントをそのまま

https://api.allmodels.io/oai

OpenAI互換

すでにOpenAI SDKを使っていますか?ベースURLをAllModelsに設定すれば、AllModelsのモデルIDでaudio.transcriptions.createやリアルタイムクライアントをそのまま呼び出せます。

OpenAI文字起こしドキュメントを読む

https://api.allmodels.io/el

ElevenLabs互換

すでにElevenLabs SDKを使っていますか?ベースURLをAllModelsに設定すれば、AllModelsのモデルIDでconvertやリアルタイムの音声認識メソッドをそのまま使えます。

ElevenLabs文字起こしドキュメントを読む

要点まとめ

リアルタイムSTT APIの基本

統合型音声認識APIとは何ですか?

統合型STT APIは、複数の文字起こしモデルに対する単一のインテグレーション窓口をアプリケーションに提供します。AllModelsでは、選んだモデルIDでプロバイダーが決まり、認証と基本的なリクエストの流れは変わりません。

AllModelsはリアルタイム文字起こしに対応していますか?

はい。ネイティブインターフェースは/v1/sttでWebSocket経由のストリーミングを行い、途中結果と確定した文字起こしを統一されたstt.*イベントとして返します。OpenAI SDKとElevenLabs SDKは、それぞれのリアルタイムクライアントでストリーミングします。ストリーミング対応はモデルによって異なります。

各プロバイダーの機能はすべて使えますか?

はい。共通の設定は標準のフィールドで指定し、話者分離の設定などのプロバイダー固有の設定はprovider_optionsに入れると、そのままプロバイダーに渡されます。

プロバイダーを比較するには?

アプリケーションのモデルIDを変更する前に、STTカタログで利用可能なモデル、ストリーミング対応、価格、APIの例を比較してください。

3ステップで1つのインテグレーション
  1. 1
    モデルを選ぶ。 最新のカタログから、provider/model形式のIDでSTTモデルを選びます。
  2. 2
    APIキーは1つだけ。 プロバイダーごとの個別のキーではなく、AllModelsで認証します。
  3. 3
    ストリーミングまたはアップロード。 ライブの文字起こしにはWebSocketで音声をストリーミングし、完成したファイルはHTTPでアップロードします。

AllModelsで開発する

STTのインテグレーションは1つから。

今すぐモデルを選び、あとから自由に変更できます。