Closed4

【AWS】Polly(Text To Speech)で音声合成を試す(AWS CLIからのリクエストで合成する)

noknok

はじめに

  • 音声合成を行うまでの手順を、メモしながら確認進める。

公式ドキュメント

https://docs.aws.amazon.com/ja_jp/polly/latest/dg/getting-started-cli.html

デモページ

https://ai-service-demos.go-aws.com/polly

今回試す環境

OS・ツールなど バージョン 備考
MacOS Ventura( 13.2.1 ) -
iTerm2(zsh) Build 3.4.20 ※デフォルトのターミナルでも可
noknok

AWS CLIのインストール

※既にインストールされているかどうかは、以下コマンドで確認可能

ターミナル
# 「aws not found」と出たら、未インストールの状態
which aws

ドキュメントに従って、AWS CLIをインストール&セットアップする

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

  1. 今回は「GUI Installer」でのインストールとし、ドキュメント記載の以下からpkgファイルをDLした
    ※大きく「GUI Installer」、「Command Line Installer」の2パターンのインストール方法がある模様。
    https://awscli.amazonaws.com/AWSCLIV2.pkg

  2. pkgファイルDL後、ダブルクリックで開いて指示に従ってインストールを進める

  3. 以下コマンドでインストールを確認する

ターミナル
# インストール場所の確認
which aws

# バージョンの確認
aws --version
noknok

AWS CLI を設定する

以下を参考に、AWS CLIの認証情報の設定を進めた
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-authentication-user.html

  1. IAMユーザーを作成する

  1. アクセスキーを取得する
    2-1. AWS Management Console にサインイン後、IAM コンソールを表示
    2-2. ナビゲーションペインから [ユーザー] を選択 > 作成済みのユーザー名を選択
    2-3. ユーザーのページで、[セキュリティ認証情報] を選択 > [アクセスキーの作成] を選択
    2-4. [コマンドラインインターフェイス (CLI)] を選択
    2-5. オプションのタグを入力して [次へ] を選択
    2-6. [.csv ファイルをダウンロード] を選択し、IAM ユーザーのアクセスキーとシークレットアクセスキーを含む .csv ファイルを保存し、[完了] を選択する
    IAMユーザー選択
    アクセスキーの新規作成-1
    アクセスキーの新規作成-2
    アクセスキーの新規作成-3
    アクセスキーの新規作成-4

  1. AWS CLI を設定する
    今回は、手順2でDLしたCSVファイルからアクセスキーのインポートを行うこととした。
CSVファイルからアクセスキーのインポートを行うパターン(設定情報がDefault以外に反映されたため却下)
3-1. CSVファイルに対して、以下の列を追加

※そのままインポートしようとしたところ以下エラーが発生したため、「User Name」列を追加した。

Expected header "User Name" not found
CSVファイル
User Name,Access key ID,Secret access key
IAMユーザー名, アクセスキーの値,シークレットアクセスキーの値

3-2. CSVファイルをインポート

ターミナル
aws configure import --csv file://DLしたCSVファイル名.csv

3-3. 認証情報の確認

ターミナル
cat ~/.aws/credentials

# 出力例
[IAMユーザー名]
aws_access_key_id = 設定したアクセスキー
aws_secret_access_key = 設定したシークレットアクセスキー

3-1. 「aws configure」コマンドを利用し、認証情報を設定する

ターミナル
aws configure

AWS Access Key ID [None]: 手順2で取得したアクセスキー
AWS Secret Access Key [None]: "手順2で取得したシークレットアクセスキー"
Default region name [None]: 利用するリージョンコード(東京リージョンの例:ap-northeast-1)
Default output format [None]: json

3-2. 「aws configure list」コマンドで、設定した認証情報を確認

ターミナル
aws configure list

# 出力例
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     *******************X shared-credentials-file
secret_key     *******************A shared-credentials-file
    region           ap-northeast-1      config-file    ~/.aws/config

  1. AWS CLIのセットアップ状況を確認する
    以下のコマンドを実行し、コマンドのオプション情報が表示されたら、問題なく設定が完了している状態
ターミナル
aws help
ターミナル
aws polly help
noknok

Amazon Pollyによる音声合成を試す

ドキュメントのサンプルによる音声合成

https://docs.aws.amazon.com/ja_jp/polly/latest/dg/get-started-cli-exercise.html
公式ドキュメントのコマンドを実行して音声合成をすると、コマンド実行したディレクトリ上にMP3ファイルが生成される。

ターミナル
aws polly synthesize-speech \
    --output-format mp3 \
    --voice-id Joanna \
    --text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' \
    hello.mp3

# レスポンス出力例
{
    "ContentType": "audio/mpeg",
    "RequestCharacters": "71"
}

日本語の音声合成方法

VoiceIDを日本語対応のIDに変更し、音声合成を行う

ターミナル
aws polly synthesize-speech \
    --engine neural \
    --output-format mp3 \
    --voice-id Kazuha \
    --text 'はじめましてこんにちは。わたしは日本の音声合成システムです' \
    hello-japan.mp3

# レスポンス出力例
{
    "ContentType": "audio/mpeg",
    "RequestCharacters": "29"
}

音声合成に関するドキュメントメモ

https://docs.aws.amazon.com/ja_jp/polly/latest/dg/voicelist.html
https://docs.aws.amazon.com/ja_jp/polly/latest/dg/NTTS-main.html

このスクラップは2023/10/01にクローズされました