テキスト読み上げのストリーミング
テキスト読み上げのストリーミング
このガイドでは、テキスト読み上げをストリーミングする方法と、オプションでオーディオをAWS S3にアップロードする方法を説明します。
このガイドでは、音声をファイルとして生成する、オーディオレスポンスを直接ストリーミングする、生成したオーディオをAWS S3バケットにアップロードして署名付きURLで共有する(任意)の3つの方法を紹介します。
このガイドは、APIキーとSDKのセットアップが完了していることを前提としています。まだの場合は、先に クイックスタートを完了してください。任意のS3アップロードのセクションには、S3にアクセスできるAWSアカウントも必要です。
ストリーミングの仕組みが気になりますか?オーディオストリーミングについてで、プロトコル、バッファリング、 レイテンシーのトレードオフを詳しく解説しています。
テキストを音声に変換する(ファイル)
テキストを音声に変換してファイルとして保存するには、ElevenLabs SDKのconvertメソッドを使用し、ローカルに.mp3ファイルとして保存します。
続いて、次のようにこの関数を実行できます。
テキストを音声に変換する(ストリーミング)
ファイルに保存せずオーディオを直接ストリーミングしたい場合は、ストリーミング機能を使用できます。
続いて、次のようにこの関数を実行できます。
おまけ:AWS S3へのアップロードと安全な共有リンクの取得
オーディオデータをファイルまたはストリームとして作成したら、ユーザーと共有したくなるかもしれません。その方法の一つが、AWS S3バケットにアップロードし、安全な共有リンクを生成することです。
AWS認証情報を作成する
データをS3にアップロードするには、AWSアクセスキーID、シークレットアクセスキー、AWSリージョン名を.envファイルに追加する必要があります。認証情報を確認するには、以下の手順に従ってください。
- AWSマネジメントコンソールにログインする:AWSホームページに移動し、アカウントでサインインします。

- IAM(Identity and Access Management)ダッシュボードにアクセスする:サービスメニューの「Security, Identity, & Compliance」にIAMがあります。IAMダッシュボードでは、AWSサービスへのアクセスを安全に管理できます。

- 新しいユーザーを作成する(必要な場合):IAMダッシュボードで「Users」を選択し、「Add user」を選択します。ユーザー名を入力します。

- 権限を設定する:付与したいアクセスレベルに応じて、ポリシーをユーザーに直接アタッチします。S3へのアップロードにはAmazonS3FullAccessポリシーを使用できます。ただし、最小権限の原則に従い、タスクの実行に必要な最小限の権限のみを付与することをおすすめします。S3バケットに必要なアクションだけを許可するカスタムポリシーを作成するとよいでしょう。

- ユーザーを確認して作成する:設定を確認してユーザーを作成します。作成後、アクセスキーIDとシークレットアクセスキーが表示されます。これらの認証情報をダウンロードし、安全に保存してください。シークレットアクセスキーは、この手順の後で再取得できません。

- AWSリージョン名を取得する:例:us-east-1

AWS S3バケットがない場合は、以下の手順に従って新しく作成する必要があります。
- S3ダッシュボードにアクセスする:サービスメニューの「Storage」にS3があります。

- 新しいバケットを作成する:S3ダッシュボードで「Create bucket」ボタンをクリックします。

- バケット名を入力し、「Create bucket」ボタンをクリックします。その他のバケットオプションはデフォルトのままで構いません。新しく追加したバケットが一覧に表示されます。


AWS SDKのインストールと認証情報の追加
pipとnpmを使用して、AWSサービスを操作するためのboto3をインストールします。
次のように環境変数を.envファイルに追加します。
AWS S3へのアップロードと署名付きURLの生成
次の関数を追加して、オーディオストリームをS3にアップロードし、署名付きURLを生成します。
続いて、テキストから生成したオーディオストリームを使用してアップロード関数を呼び出します。
オーディオファイルをS3にアップロードした後、ファイルへのアクセスを共有するための署名付きURLを生成します。このURLには有効期限があるため、一定時間後に失効し、一時的な共有に安全です。
次のようにファイルからURLを生成できます。
ファイルを複数回使用する場合は、署名付きURLは失効するため、直接保存するのではなく、S3ファイルパスをデータベースに保存し、必要になるたびに署名付きURLを再生成してください。
すべてを組み合わせる
すべてを組み合わせるには、次のスクリプトを使用できます。
まとめ
これで、テキストを音声に変換し、オーディオファイルを共有するための署名付きURLを生成する方法がわかりました。この機能により、コンテンツを動的に作成・共有するさまざまな可能性が広がります。
以下は、この機能で構築できるものの例です。
-
教育向けポッドキャスト:生徒がオンデマンドでアクセスできる、パーソナライズされた教育コンテンツを作成できます。教師は授業をオーディオ形式に変換してS3にアップロードし、リンクを生徒と共有することで、従来の教室環境外でもより魅力的な学習体験を提供できます。
-
ウェブサイトのアクセシビリティ機能:テキストコンテンツをオーディオ形式で提供し、ウェブサイトのアクセシビリティを向上させます。これにより、視覚障害のある人や聴覚による学習を好む人も、ウェブサイト上の情報によりアクセスしやすくなります。
-
自動カスタマーサポートメッセージ:FAQや注文状況の更新など、カスタマーサポート用の自動化されたパーソナライズドオーディオメッセージを作成できます。従来のテキストメールと比べて、より魅力的な顧客体験を提供できます。
-
オーディオブックとナレーション:書籍全体や短編小説をオーディオ形式に変換し、読者に文学を楽しむ新たな方法を提供できます。著者や出版社はコンテンツの提供方法を多様化し、読むより聴くことを好む読者に届けられます。
-
語学学習ツール:学習者にオーディオレッスンや練習問題を提供する語学学習支援ツールを開発できます。発音やリスニングスキルを目的に合わせて練習できます。