• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

aws polly

date: 2024-06-30 excerpt: aws pollyの概要と使い方

tag: awsaws pollytts


aws pollyの概要と使い方

概要

  • AWS Pollyは、テキストを音声に変換するサービス
  • GCPのText-to-Speechはストリーミングをサポートしていないが、AWS Pollyはストリーミングに対応している

必要なライブラリ

macOS

$ brew install portaudio
$ pip install pyaudio

具体例

import boto3
import pyaudio
import os
import wave

def stream_speech(text, voice_id='Tomoko', engine='neural'):
    # Pollyクライアントの作成
    polly_client = boto3.client('polly')

    # 音声合成のリクエスト
    response = polly_client.synthesize_speech(
        Text=text,
        OutputFormat='pcm',
        VoiceId=voice_id,
        Engine=engine
    )

    # ストリーミングオーディオの設定
    audio_stream = response.get('AudioStream')

    p = pyaudio.PyAudio()
    stream = p.open(format=p.get_format_from_width(width=2),
                    channels=1,
                    rate=16000,
                    output=True)

    try:
        while True:
            data = audio_stream.read(1024)
            if len(data) == 0:
                break
            stream.write(data)
    finally:
        stream.stop_stream()
        stream.close()
        p.terminate()

if __name__ == '__main__':
    text = """ジョバンニはまっ赤になってうなずきました。
けれどもいつかジョバンニの眼のなかには涙がいっぱいになりました。
そうだ僕は知っていたのだ、もちろんカムパネルラも知っている、それはいつかカムパネルラのお父さんの博士のうちでカムパネルラといっしょに読んだ雑誌のなかにあったのだ。
それどこでなくカムパネルラは、その雑誌を読むと、すぐお父さんの書斎から巨おおきな本をもってきて、ぎんがというところをひろげ、まっ黒な頁ページいっぱいに白い点々のある美しい写真を二人でいつまでも見たのでした。
それをカムパネルラが忘れる筈はずもなかったのに、すぐに返事をしなかったのは、このごろぼくが、朝にも午后にも仕事がつらく、学校に出てももうみんなともはきはき遊ばず、カムパネルラともあんまり物を云わないようになったので、カムパネルラがそれを知って気の毒がってわざと返事をしなかったのだ、そう考えるとたまらないほど、じぶんもカムパネルラもあわれなような気がするのでした。
"""
    stream_speech(text)


awsaws pollytts Share Tweet