🧠

音声系AIサービス「ElevenLabs」使ってみた!

に公開

はじめに

ChatGPTをはじめとする生成AIによる文章系のサービスがありふれてきた昨今、音声でのやり取りができるAIサービスはまだまだ物珍しい存在です。今回は、リアルタイム音声AI機能を提供する「ElevenLabs」を実際に使ってみたので、その感想と技術的な特徴をまとめてみました。
日本だとあまり話題になっていない(?)ようですが、使ってみると素晴らしいサービスでしたので、早速記事にしてみます。

ElevenLabsとは?

ElevenLabsは、高品質な音声合成と音声認識を提供するAIサービスです。特に注目すべきは、リアルタイムでの音声対話が可能な点。まるで人間と会話しているかのような自然なやり取りができます。
しっかり日本語のLPを用意してくれているところがいいですね👌(なおAPIドキュメント等は英語なので気合いで読みましょう)
サクッと試したい方は、公式サイトの右下にボイスチャットボタンがありますので体験してみましょう。日本語が流暢すぎて驚くこと間違いなし。

(蛇足ですが)ElevenLabsの資金調達と将来性

2025年1月 ElevenlabsはシリーズCで270億を調達し、企業評価額が約4950億円になったそうです。ハンパないですね。個人的には今後日本でもグイグイ来るんじゃないかなーと睨んでいます。
ElevenLabs、約270億円を調達 今後は日本市場への展開が予想される

実際に使ってみて感じた驚きポイント

今回私が使ってみたのは、Agent Platform(いわゆるAIエージェント)です。
AIエージェントをサクサクっと作って、そのAIエージェントと音声対話できる機能です。

  1. レスポンスの速さが異次元
    これが一番の驚きでした。音声を話し終わってから、AIの返答が始まるまでの時間が短い。人間同士の会話と比べても遜色ないレスポンス速度です。
    あと、AIが話している最中に人間が会話を始めると「割り込み」を感知して発声を止めてくれます。すげえ。
    ChatGPTなどと比べて(あくまで定性的なものですが)早いし、音声認識精度が高いように感じます。
  2. 音声認識精度の高さ
    かなり正確に音声を認識してくれます。早口で話しても、小声で話しても、しっかりとキャッチしてくれる精度の高さには感心しました。
    RAGをAIエージェントに組み込むことができるので、特殊な固有名詞なども対応が可能だと思います(検証し切れてません)
    ただ、若干日本語の発声がおかしな点も見受けられました。
  • 「誠意」→「しょういき」と発音される などなど
    この辺りもコンソール上で単語と発声の設定ができれば良いなーと思いますが、現状では設定が見当たりませんでした。
  1. 声質も変更できる(なんなら自分の声でAIエージェントが作成できる)
    なんでもできすぎる、、、
    AIエージェントの声が変更できます。
    私が試してみたところだと、追課金なしで、ある程度流暢な日本語音声は5種類ほどでした。
    ↓日本語対応の音声をフィルターかけた結果↓

    これだけでも十分ではありますが、なんと自分の声を録音するだけでも音声を作ってくれるみたいです。
    30秒ほど話した音声データを入力したら早速作ってくれました。
    ただ、やっぱり若干日本語の発声がおかしなところはありますねー。今後に期待です。

開発者にとって嬉しいポイント

SDKの充実度

開発者目線でElevenLabsの素晴らしい点は、開発者向けのSDKと公式ドキュメントがしっかりしていること。
ちなみにSDKはNode.jsPythonで提供されています。

ドキュメントもいい感じ

Create Agent API
APIリファレンスがしっかりまとまっているのは開発者的に非常にありがたい、、、これがしっかりしているだけでも導入のハードルがかなり下がりますからね。(欲を言えば、APIリファレンスのページもMDでコピーできるようにしてほしかった、、、)

実際に使ってみる

参考ページ
Next.js v15で試してみました。

今回私は自作のAIエージェント(Private agents)を使用したので、signed-urlを使用してWebsoketによる接続する方式をとりました。
サーバサイドでsigned-urlを取得し、それをもとにWebsoket接続を作成します。
(当然ですが、APIキーを扱う場合はサーバサイドからのアクセスに限定してください。)

// Node.js server

app.get('/signed-url', yourAuthMiddleware, async (req, res) => {
  const response = await fetch(
    `https://api.elevenlabs.io/v1/convai/conversation/get-signed-url?agent_id=${process.env.AGENT_ID}`,
    {
      method: 'GET',
      headers: {
        // Requesting a signed url requires your ElevenLabs API key
        // Do NOT expose your API key to the client!
        'xi-api-key': process.env.XI_API_KEY,
      },
    }
  );

  if (!response.ok) {
    return res.status(500).send('Failed to get signed URL');
  }

  const body = await response.json();
  res.send(body.signed_url);
});
// Client
const response = await fetch('/signed-url', yourAuthHeaders);
const signedUrl = await response.text();
const conversation = await Conversation.startSession({
  signedUrl,
  connectionType: 'websocket',
});

ちなみにstartSession関数のコールバックに色々指定できるので、通話の開始時間(≒セッションの確立時間)などの計測も可能です。
コールバックオプション(和訳)

まとめ

ElevenLabsは、音声AIサービスの中でも特にレスポンス速度と認識精度で頭一つ抜けている印象です。日本語の発音にはまだ改善の余地がありますが、それを差し引いても十分実用的なレベルに達しています。
何より、開発者にとって使いやすいSDKと充実したドキュメントが用意されているのが嬉しいポイント。音声を使った新しいサービスを作りたい方は、ぜひ一度試してみることをおすすめします。
ちなみに無料プランがあるので、無料でサクッと試してみたい方ぜひ〜。

BLT SDC Tech Blog

Discussion