「自分の音声でテキストを読み上げられたらどれほど楽しいか」
何年も前に考え始めたが、自分の理想的なものを見つけることができず塩漬けになっていた。
つい最近、ふと生成AIでテキストを自動生成させてそれを読み上げるアプリ制作を思いついたのをきっかけに
再び知らじ始めたところ、こちらのサービス「ElevenLabs」がとても便利そうだったので試しに使ってみました。
結果、自分の用途に合っていたのでそのまま使い始めましたので紹介します。
ElevenLabsの概要
下記はGeminiによって作成した文章です。
ElevenLabsは、最先端のAI技術を駆使した音声合成・テキスト読み上げプラットフォームです。 「AI音声の革命児」として世界中で利用されており、2025年に登場した最新モデルでは70以上の言語に対応するなど、驚異的な進化を続けています。
主な特徴は以下の通りです。
-
圧倒的なリアルさ 従来の機械的な音声とは一線を画し、感情豊かで人間らしい「生きた声」を生成します。
-
多言語対応(70言語以上) 日本語はもちろん、英語、中国語、フランス語など70以上の言語に対応。テキストを入力するだけで、あらゆる言語への翻訳・吹き替えがワンクリックで行えます。
-
ボイスクローン機能 短いサンプル音声(最短数秒)をアップロードするだけで、その人の声を忠実に再現したAIボイスを作成できます。
-
幅広い用途 動画のナレーション、オーディオブックの作成、ゲームキャラクターの声、企業の電話自動応答など、あらゆるシーンで活用されています。
【日本市場へ本格参入】 ビジネス面でも急成長を遂げており、2025年1月には評価額が33億ドル(約5,000億円)に達しました。さらに、2025年4月には日本法人「イレブンラボジャパン」が設立され、日本のクリエイターや企業に向けたサポート体制も強化されています。
活用方法
いくつかの料金プランがあるのだが、 私が選んだのは「スターター」プラン。
やりたかったことが「API経由でテキストを音声に変換する」事であり、 スタータープランがそれを満たして最も低価格なプランであったため。
低価格な分オプションは少ないのはわかっていたのだが、 生成された音声も日本語のイントネーションが一部違和感がある。
ポーランド語の音声を生成してポーランド出身の友人に聞かせてみた後に自分の声だと 説明したところ、「言われてみれば確かにシンジョーの声だ!」と言われたので、 ボイスクローンとしては十分な実現度がある。
実装
実際にPythonで実装したコードはこちらです。 一部ディレクトリとファイル名を修正してから掲載しているので そのままのコピペでは動作しないかもしれないです。
APIキー、ボイスIDはElevenLabsの管理画面から取得できます。
1import os
2from dotenv import load_dotenv
3from elevenlabs.client import ElevenLabs
4
5# .env 読み込み
6loaded = load_dotenv()
7
8api_key = os.getenv("ELEVENLABS_API_KEY") # ElevenLabsのAPIキー
9voice_id = os.getenv("ELEVENLABS_VOICE_ID") # ElevenLabsのボイスID
10output_file="path/to/output.mp3" # 設定したディレクトリ先に"output_file"のファイル名で作成される
11client = ElevenLabs(api_key=api_key)
12
13
14class ElevenLabs():
15 def execute(self, user_prompts: str) -> None:
16 audio_stream = client.text_to_speech.convert(
17 text=user_prompts,
18 voice_id=voice_id,
19 model_id="eleven_multilingual_v2",
20 voice_settings={
21 "stability": 0.5,
22 "similarity_boost": 0.75
23 }
24 )
25
26 os.makedirs(os.path.dirname(output_file), exist_ok=True)
27 with open(output_file, "wb") as f:
28 for chunk in audio_stream:
29 f.write(chunk)1from elevenlabs_test import ElevenLabs
2
3elvnlbs = ElevenLabs()
4elvnlbs.execute("ここにプロンプトを書きます。")最後に
金額も安価であり、使い方もとても簡単で幅広いので こちらのサービスはとても気に入っており、 引き続き活用していきます。
月額5$のプランでも機能としては十分なのだが、 より高価なプランだとより良い音声を生成できるのかがとても気になっております。
もう少し今のプランで試してからアップグレードするかを決めたいと思います。