---
title: "2026年のおすすめTTS・STTアグリゲーターAPI：AllModels、OpenRouter、Eden AI、Telnyxなどを比較"
description: "2026年のTTS・STTアグリゲーターAPI 9種を比較。音声合成、音声認識、WebSocketによるリアルタイムストリーミング、OpenAI・ElevenLabs SDK対応、料金をまとめました。"
canonical: "https://allmodels.io/ja/guides/best-tts-stt-aggregator-api"
markdown: "https://allmodels.io/ja/guides/best-tts-stt-aggregator-api.md"
author: "AllModels"
datePublished: "2026-10-16"
dateModified: "2026-10-19"
---

# 2026年のおすすめTTS・STTアグリゲーターAPI

複数プロバイダーの音声合成・音声認識モデルを1つのインテグレーションで提供する9つのサービスを並べて比較します。それぞれの対応範囲、ストリーミング方式、利用できるSDK、課金方法をまとめました。

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

## TTS・STTアグリゲーターAPIとは

TTS・STTアグリゲーターAPIは、多数のプロバイダーの音声合成・音声認識モデルを、1つのアカウント、1つのAPIキー、1つのインテグレーションで利用できるようにするものです。Cartesia、ElevenLabs、Deepgram、AssemblyAI、OpenAIにそれぞれ登録し、各SDKを覚え、個別に支払う代わりに、アプリケーションは1つのサービスを呼び出し、IDでモデルを選びます。同じ考え方は、統合音声API、音声の抽象化レイヤー、「音声版のOpenRouter」とも呼ばれます。

この分野のサービスには大きな違いがあります。音声合成だけのもの、音声認識だけのものがあり、両方に対応するものはわずかです。生成されるそばからWebSocketで音声をストリーミングするものもあれば、完成したファイルを返すものもあります。すでに使っているかもしれないOpenAIやElevenLabsのSDKに対応するものもあれば、専用のクライアントが必要なものもあります。ホスト型APIではなくオープンソースのライブラリもいくつかあり、その場合は各プロバイダーのキーと請求を自分で持ち続けることになります。

### 比較の方法

リアルタイムのTTSやSTTのプロバイダーを標準化するAPIを探すようAIコーディングエージェントに依頼したとき、最も多く推薦されたサービスを選びました。表の情報はすべて各社の公式サイトとドキュメントに基づき、2026年10月に確認したものです。同じ会社のページ間で記載が異なる場合は、その範囲を示しています。各サービスについて次の点を確認しました。

- 公開APIによる**音声合成と音声認識**。
- それぞれの**リアルタイムストリーミング**：生成されるそばから音声や文字起こしをストリーミングするWebSocket。完成した1回のリクエストをHTTPでストリーミングするものは含めません。
- **OpenAI互換・ElevenLabs互換**のエンドポイント。つまり、ベースURLを変えるだけで公式SDKが動作すること。
- リクエストごとの**プロバイダー選択**、カタログの規模、料金体系。

### AllModelsの位置づけ

AllModelsは、音声の入力と出力の両方を1か所で必要とするチーム向けに作られています。音声合成と音声認識は1つのAPIキーと1つのプリペイド残高を共有し、どちらもリアルタイムでストリーミングでき、公式のOpenAI SDKとElevenLabs SDKの両方で動作します。この比較の中でElevenLabs SDKに対応しているのはAllModelsだけです。料金はプロバイダーの定価に5.5%の手数料を加えた従量課金で、OpenRouterと同じ方式です。新規アカウントには無料クレジットが付与されます。

## TTS・STTアグリゲーターAPIの比較

**Yes**はその機能が各社のドキュメントに記載されていることを示します。それ以外はすべて**No**です。

各社の公式サイトとドキュメントに記載されている機能。（2026年10月時点）

| 製品 | 音声合成 | 音声認識 | リアルタイムTTS | リアルタイムSTT | OpenAI SDK | ElevenLabs SDK | プロバイダー選択 | カタログ | 料金 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [AllModels](https://allmodels.io/ja) | あり（40モデル） | あり（33モデル） | あり（WebSocket） | あり（WebSocket） | あり | あり | あり（`only`、`order`、`ignore`） | 18プロバイダーの73モデル | プリペイドの従量課金＋5.5%の手数料、登録時に無料クレジット |
| Telnyx | あり | あり | あり（WebSocket） | あり（WebSocket） | なし | なし | あり | TTSエンジン約9〜12種、STTエンジン約12〜14種 | 従量課金（ボリュームによる段階料金あり） |
| Eden AI | あり | あり | なし | なし | あり | なし | あり（`provider/model`） | TTSプロバイダー7社、STTプロバイダー7社 | 定価での従量課金＋5.5%の手数料 |
| OpenRouter | あり | あり | なし | なし | あり | なし | なし | TTSモデル35種、STTモデル26種 | 定価での従量課金＋クレジット購入時に5.5%の手数料 |
| Speechbase | あり | なし | なし | なし | なし | なし | あり（`provider/model`） | TTSプロバイダー15〜17社 | 無料プランあり、Proは月額$25から、クレジット制 |
| SpeechSDK | あり | なし | なし | なし | なし | なし | あり（`provider/model`） | TTSプロバイダー14〜17社 | 無料のオープンソース、各プロバイダーに個別に支払い |
| SLNG | あり | あり | あり（WebSocket） | あり（WebSocket） | なし | なし | あり（URLでモデルを指定） | TTSモデル13種、STTモデル8種 | プリペイド、音声1分あたりの課金 |
| VoiceRun | なし | あり | なし | あり（WebSocket） | なし | なし | あり | STTモデル約14種 | プロバイダーの料金＋音声1分あたり$0.02 |
| router.audio | なし | あり | なし | あり（WebSocket） | なし | なし | あり（`provider`または`auto`） | STTプロバイダー10社 | 自前のプロバイダーキーを使えば無料 |

- **リアルタイム**は、送信中にWebSocketで音声や文字起こしがストリーミングされることを意味します。
- **OpenAI SDK**と**ElevenLabs SDK**は、ベースURLを変えるだけで公式SDKが動作することを意味します。

### 各サービスの概要

#### Telnyx

通信プラットフォームで、その音声APIはREST、WebSocket、通話中の音声を通じて音声合成とSTTルーターを提供し、Telnyxがホストするモデルとサードパーティのエンジンを組み合わせています。

**こんな場合に:** Telnyxの電話インフラ上で電話エージェントや音声エージェントを構築しており、音声処理を通話ネットワークのそばに置きたい場合。

#### Eden AI

汎用のAI APIアグリゲーターです。音声エンドポイントはサードパーティのTTS・STTプロバイダーをOpenAI互換およびネイティブのエンドポイントでラップしており、ストリームではなく完成した音声と文字起こしを返します。

#### OpenRouter

LLM向けで知られるモデルルーターで、OpenAI互換の音声合成と音声認識も提供しています。音声はリクエスト・レスポンス型で、TTSの音声はHTTPでストリーミングして返せますが、テキストをストリーミング入力するWebSocketはなく、文字起こしはファイル単位です。

**こんな場合に:** 最も基本的な音声合成と音声認識だけが必要で、LLMにはすでにOpenRouterを使っている場合。

#### Speechbase

ボイスライブラリ、発音辞書、リクエストログを備えたホスト型の音声合成ゲートウェイです。音声認識には対応していません。

#### SpeechSDK

Speechbaseのチームによる無料のオープンソースTypeScriptライブラリです。自分のコード内で動作し、自前のキーで各音声合成プロバイダーを直接呼び出すため、ホスト型APIではありません。

#### SLNG

STTとTTSのモデル（自社ホストのモデルを含む）を統合APIで提供する地域型の音声ゲートウェイで、双方向のWebSocketストリーミングに対応しています。

#### VoiceRun

コードで音声エージェントを構築するためのエンタープライズ向けプラットフォームです。リアルタイムのWebSocket STTルーターを公開していますが、音声合成は単体のAPIではなく、エージェント内部で使われます。

**こんな場合に:** 本番運用の電話エージェントを構築しており、評価、電話機能、STTのフォールバックを1つのプラットフォームでまとめたい場合。

#### router.audio

約10社のプロバイダーにまたがるリアルタイム音声認識を統一する軽量なWebSocketプロキシです。音声合成とファイルの文字起こしには対応していません。

## 2026年のおすすめTTS・STTアグリゲーターAPI：AllModels

この比較で最も優れたTTS・STTアグリゲーターAPIはAllModelsです。9つのサービスのうち、すべての機能列がYesになっているのはAllModelsだけです。

- **1つのキーで音声の入力と出力。** 音声合成と音声認識が1つのAPIキーと1つのプリペイド残高を共有します。9つのサービスのうち、両方に対応しているのは5つだけです。
- **双方向のリアルタイム。** 音声合成と音声認識の両方がWebSocketでストリーミングします。これに対応しているのはAllModels、Telnyx、SLNGだけです。
- **使い慣れたSDKをそのまま。** 公式のOpenAI SDKが音声合成、音声認識、リアルタイム文字起こしで動作し、公式のElevenLabs SDKも動作します。表の中でElevenLabs SDKに対応するサービスはほかにありません。
- **モデルとプロバイダーを選べる。** 18プロバイダーの73モデルを提供し、リクエストごとに`only`、`order`、`ignore`のプロバイダー設定を指定できます。

ほかのサービスはいずれも表の一部しかカバーしていません。**Speechbase**と**SpeechSDK**は音声合成のみ、**router.audio**は音声認識のみです。**Eden AI**と**OpenRouter**はリアルタイムのストリームではなく完成したファイルを返します。**Telnyx**と**VoiceRun**は自社の電話・エージェント基盤を中心に音声機能を構築しています。**SLNG**はOpenAIやElevenLabsのSDKではなく専用のクライアントが必要です。

AllModelsなら、そのすべてを1つのインテグレーションでカバーできます。[モデルカタログ](https://allmodels.io/ja/audio/models)を見るか、無料クレジットで始めてください。

## 音声の入力と出力を1つのキーで

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

### HTTP（音声合成） — JavaScript · Node.js · fetch

クライアント: ネイティブ · モード: 音声合成 · 言語: JS

テキストがすでに揃っている場合は、`https://api.allmodels.io/oai/audio/speech`にPOSTして音声ファイルを保存します。 [TTSドキュメント](https://allmodels.io/audio/docs/text-to-speech)。

```javascript
import { writeFile } from "node:fs/promises";

const response = await fetch("https://api.allmodels.io/oai/audio/speech", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ALLMODELS_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "grok/grok-tts",
    voice: "eve",
    input: "Your order has shipped. It arrives tomorrow.",
    response_format: "mp3"
  })
});

if (!response.ok) throw new Error(await response.text());
await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer()));
```

### HTTP（音声合成） — Python · requests

クライアント: ネイティブ · モード: 音声合成 · 言語: Python

テキストがすでに揃っている場合は、`https://api.allmodels.io/oai/audio/speech`にPOSTして音声ファイルを保存します。 [TTSドキュメント](https://allmodels.io/audio/docs/text-to-speech)。

```python
import os

import requests

response = requests.post(
    "https://api.allmodels.io/oai/audio/speech",
    headers={"Authorization": f"Bearer {os.environ['ALLMODELS_API_KEY']}"},
    json={
        "model": "grok/grok-tts",
        "voice": "eve",
        "input": "Your order has shipped. It arrives tomorrow.",
        "response_format": "mp3",
    },
    timeout=60,
)
response.raise_for_status()

with open("speech.mp3", "wb") as output:
    output.write(response.content)
```

### HTTP（音声認識） — JavaScript · Node.js · fetch

クライアント: ネイティブ · モード: 音声認識 · 言語: JS

録音がすでにある場合は、`https://api.allmodels.io/oai/audio/transcriptions`にPOSTして文字起こし結果を読み取ります。 [STTドキュメント](https://allmodels.io/audio/docs/speech-to-text)。

```javascript
import { readFile } from "node:fs/promises";

const form = new FormData();
form.set("model", "deepgram/nova-3");
form.set("language", "en");
form.set("file", new Blob([await readFile("call.wav")], { type: "audio/wav" }), "call.wav");

const response = await fetch("https://api.allmodels.io/oai/audio/transcriptions", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.ALLMODELS_API_KEY}` },
  body: form
});

if (!response.ok) throw new Error(await response.text());
const transcript = await response.json();
console.log(transcript.text);
```

### HTTP（音声認識） — Python · requests

クライアント: ネイティブ · モード: 音声認識 · 言語: Python

録音がすでにある場合は、`https://api.allmodels.io/oai/audio/transcriptions`にPOSTして文字起こし結果を読み取ります。 [STTドキュメント](https://allmodels.io/audio/docs/speech-to-text)。

```python
import os
import requests

with open("call.wav", "rb") as audio:
    response = requests.post(
        "https://api.allmodels.io/oai/audio/transcriptions",
        headers={"Authorization": f"Bearer {os.environ['ALLMODELS_API_KEY']}"},
        data={"model": "deepgram/nova-3", "language": "en"},
        files={"file": ("call.wav", audio, "audio/wav")},
        timeout=60,
    )

response.raise_for_status()
print(response.json()["text"])
```

### OpenAI SDK（音声合成） — JavaScript · openai

クライアント: OpenAI SDK · モード: 音声合成 · 言語: JS

OpenAI SDKのベースURLを`https://api.allmodels.io/oai`に設定し、完成した音声ファイルをリクエストします。 [OpenAI TTSドキュメント](https://allmodels.io/audio/docs/openai/text-to-speech)。

```javascript
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseURL: "https://api.allmodels.io/oai"
});

const audio = await client.audio.speech.create({
  model: "grok/grok-tts",
  voice: "eve",
  input: "Your order has shipped. It arrives tomorrow.",
  response_format: "mp3"
});

await writeFile("speech.mp3", Buffer.from(await audio.arrayBuffer()));
```

### OpenAI SDK（音声合成） — Python · openai

クライアント: OpenAI SDK · モード: 音声合成 · 言語: Python

OpenAI SDKのベースURLを`https://api.allmodels.io/oai`に設定し、完成した音声ファイルをリクエストします。 [OpenAI TTSドキュメント](https://allmodels.io/audio/docs/openai/text-to-speech)。

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["ALLMODELS_API_KEY"],
    base_url="https://api.allmodels.io/oai",
)

audio = client.audio.speech.create(
    model="grok/grok-tts",
    voice="eve",
    input="Your order has shipped. It arrives tomorrow.",
    response_format="mp3",
)

audio.write_to_file("speech.mp3")
```

### OpenAI SDK（音声認識） — JavaScript · openai

クライアント: OpenAI SDK · モード: 音声認識 · 言語: JS

OpenAI SDKのベースURLを`https://api.allmodels.io/oai`に設定し、`audio.transcriptions.create`で完成したファイルを文字起こしします。 [OpenAI文字起こしドキュメント](https://allmodels.io/audio/docs/openai/transcription)。

```javascript
import { createReadStream } from "node:fs";
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseURL: "https://api.allmodels.io/oai"
});

const transcript = await client.audio.transcriptions.create({
  file: createReadStream("call.wav"),
  model: "deepgram/nova-3",
  language: "en"
});

console.log(transcript.text);
```

### OpenAI SDK（音声認識） — Python · openai

クライアント: OpenAI SDK · モード: 音声認識 · 言語: Python

OpenAI SDKのベースURLを`https://api.allmodels.io/oai`に設定し、`audio.transcriptions.create`で完成したファイルを文字起こしします。 [OpenAI文字起こしドキュメント](https://allmodels.io/audio/docs/openai/transcription)。

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["ALLMODELS_API_KEY"],
    base_url="https://api.allmodels.io/oai",
)

with open("call.wav", "rb") as audio:
    transcript = client.audio.transcriptions.create(
        file=audio,
        model="deepgram/nova-3",
        language="en",
    )

print(transcript.text)
```

### ElevenLabs SDK（音声合成） — JavaScript · @elevenlabs/elevenlabs-js

クライアント: ElevenLabs SDK · モード: 音声合成 · 言語: JS

ElevenLabs SDKのベースURLを`https://api.allmodels.io/el`に設定し、完成したテキストを音声ファイルに変換します。 [ElevenLabs TTSドキュメント](https://allmodels.io/audio/docs/elevenlabs/text-to-speech)。

```javascript
import { writeFile } from "node:fs/promises";
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const client = new ElevenLabsClient({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseUrl: "https://api.allmodels.io/el"
});

const audio = await client.textToSpeech.convert("eve", {
  text: "Your order has shipped. It arrives tomorrow.",
  modelId: "grok/grok-tts",
  outputFormat: "mp3_44100_128"
});

const chunks = await Array.fromAsync(audio, (chunk) => Buffer.from(chunk));
await writeFile("speech.mp3", Buffer.concat(chunks));
```

### ElevenLabs SDK（音声合成） — Python · elevenlabs

クライアント: ElevenLabs SDK · モード: 音声合成 · 言語: Python

ElevenLabs SDKのベースURLを`https://api.allmodels.io/el`に設定し、完成したテキストを音声ファイルに変換します。 [ElevenLabs TTSドキュメント](https://allmodels.io/audio/docs/elevenlabs/text-to-speech)。

```python
import os
from elevenlabs.client import ElevenLabs

client = ElevenLabs(
    api_key=os.environ["ALLMODELS_API_KEY"],
    base_url="https://api.allmodels.io/el",
)

audio = client.text_to_speech.convert(
    "eve",
    text="Your order has shipped. It arrives tomorrow.",
    model_id="grok/grok-tts",
    output_format="mp3_44100_128",
)

with open("speech.mp3", "wb") as output:
    for chunk in audio:
        output.write(chunk)
```

### ElevenLabs SDK（音声認識） — JavaScript · @elevenlabs/elevenlabs-js

クライアント: ElevenLabs SDK · モード: 音声認識 · 言語: JS

ElevenLabs SDKのベースURLを`https://api.allmodels.io/el`に設定し、完成したファイルを文字起こしします。JavaScript SDKはモデルIDを検証するため、`scribe_v2`のようにSDKが認識するIDを使ってください。 [ElevenLabs文字起こしドキュメント](https://allmodels.io/audio/docs/elevenlabs/transcription)。

```javascript
import { File } from "node:buffer";
import { readFile } from "node:fs/promises";
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const client = new ElevenLabsClient({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseUrl: "https://api.allmodels.io/el"
});

const bytes = await readFile("call.wav");
const transcript = await client.speechToText.convert({
  file: new File([bytes], "call.wav", { type: "audio/wav" }),
  modelId: "scribe_v2",
  languageCode: "en"
});

console.log(transcript.text);
```

### ElevenLabs SDK（音声認識） — Python · elevenlabs

クライアント: ElevenLabs SDK · モード: 音声認識 · 言語: Python

ElevenLabs SDKのベースURLを`https://api.allmodels.io/el`に設定し、AllModelsの任意のSTTモデルIDで完成したファイルを文字起こしします。 [ElevenLabs文字起こしドキュメント](https://allmodels.io/audio/docs/elevenlabs/transcription)。

```python
import os
from elevenlabs.client import ElevenLabs

client = ElevenLabs(
    api_key=os.environ["ALLMODELS_API_KEY"],
    base_url="https://api.allmodels.io/el",
)

with open("call.wav", "rb") as audio:
    transcript = client.speech_to_text.convert(
        file=audio,
        model_id="deepgram/nova-3",
        language_code="en",
    )

print(transcript.text)
```

## 使い慣れたSDKはそのまま

### OpenAI互換

エンドポイント: `https://api.allmodels.io/oai`

公式のOpenAI SDKの接続先をAllModelsに向ければ、AllModelsの任意のモデルIDで`audio.speech.create`、`audio.transcriptions.create`、リアルタイム文字起こしをそのまま呼び出せます。

- [OpenAI SDKドキュメントを読む](https://allmodels.io/audio/docs/openai/overview)

### ElevenLabs互換

エンドポイント: `https://api.allmodels.io/el`

公式のElevenLabs SDKの接続先をAllModelsに向ければ、音声合成、ストリーミング、音声認識、リアルタイムの各メソッドを、ほかのプロバイダーのモデルでもそのまま使えます。

- [ElevenLabs SDKドキュメントを読む](https://allmodels.io/audio/docs/elevenlabs/overview)

## TTS・STTアグリゲーターに関する質問

### 2026年に最もおすすめのTTS・STTアグリゲーターAPIは？

AllModelsです。この比較の中で、音声合成と音声認識の両方を双方向のリアルタイムWebSocketストリーミング、公式のOpenAI SDK、公式のElevenLabs SDKで提供し、しかもすべてを1つのAPIキーと1つのプリペイド残高で利用できるのはAllModelsだけです。

### OpenRouterはリアルタイムの音声合成に対応していますか？

いいえ。OpenRouterの音声合成と音声認識はリクエスト・レスポンス型のみで、リアルタイムストリーミングには対応していません。AllModelsは両方をWebSocketでストリーミングします。

### Speechbaseは音声認識に対応していますか？

いいえ。2026年10月時点で、SpeechbaseのドキュメントとAPIリファレンスに記載されているのは音声合成のエンドポイントのみです。オープンソースの姉妹ライブラリであるSpeechSDKも音声合成専用です。

### アグリゲーターAPIとオープンソースの音声ライブラリの違いは？

SpeechSDKのようなライブラリはアプリケーション内で動作し、各プロバイダーごとに自前のアカウント、キー、請求が必要です。AllModelsのようなホスト型アグリゲーターなら、1つのキーと1つのプリペイド残高で[モデルカタログ](https://allmodels.io/ja/audio/models)全体を利用できます。

## 3ステップでAllModelsを試す

1. **モデルを選ぶ。** [TTSモデル](https://allmodels.io/ja/audio/models?type=tts)と[STTモデル](https://allmodels.io/ja/audio/models?type=stt)を、`provider/model`形式のIDで選びます。
2. **APIキーは1つだけ。** プロバイダーごとのキーではなく、AllModelsのキー1つで両方向を認証します。
3. **ストリーミングまたはファイル送信。** ライブの音声や文字起こしにはWebSocketを、完成したファイルにはHTTPを使います。

## 音声の入力も出力も、1つのキーで。

無料クレジットで始めて、インテグレーションを変えずにモデルを切り替えられます。

- [無料で始める](https://dash.allmodels.io/signup)
- [モデルを見る](https://allmodels.io/ja/audio/models)
- [AllModelsのドキュメントを読む](https://allmodels.io/audio/docs)
- [正規のHTML版ガイドを見る](https://allmodels.io/ja/guides/best-tts-stt-aggregator-api)
