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

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

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

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

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

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

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

- 新しいバケットを作成します。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にアップロードし、リンクを生徒と共有することで、従来の教室外でもより魅力的な学習体験を提供できます。
-
ウェブサイトのアクセシビリティ機能:テキストコンテンツをオーディオ形式で提供し、ウェブサイトのアクセシビリティを向上させます。これにより、視覚障害のある方や聴覚による学習を好む方も、ウェブサイト上の情報によりアクセスしやすくなります。
-
自動カスタマーサポートメッセージ:よくある質問や注文状況の更新など、カスタマーサポート向けに自動化されたパーソナライズドオーディオメッセージを作成できます。従来のテキストメールと比べて、より魅力的な顧客体験を提供できます。
-
オーディオブックとナレーション:書籍全体や短編小説をオーディオ形式に変換し、読者に文学を楽しむ新しい方法を提供できます。著者や出版社はコンテンツの提供方法を多様化し、読むより聴くことを好む層に届けられます。
-
語学学習ツール:学習者にオーディオレッスンや演習を提供する語学学習支援ツールを開発できます。発音やリスニングスキルを、目的に合わせて練習できるようになります。