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