【Objective-C】AWSのAmazonPollyでText to Speachを実装する方法【iOS11】

AWSにあるAmazoPollyを使い文字を読み上げる機能を作成する方法をご紹介します。

1. PoolIDの作成

AWSの管理画面からAmazonPollyのPoolIDを作成します

ap-sortheast-1:xxxxxxxxx-xxxxxxxx-xxxxxxxx

このような値がPoolIDになります。

 

2. ロールの設定

次にAWSの管理画面より、作成したPoolIDにロールを設定してください。
ロールの設定をしないと、音声ファイル取得ようのurlを叩いても

CognitoIdentityCredentials is not authorized to perform: polly:SynthesizeSpeech

というエラーになり音声ファイルをダウンロードすることができません。

 

3. CocoapodによるAWSPollyのインストール

Podfileに追記してください。

ターミナルでpodを更新します。

 

4. プログラムの実装

AWSPollyと再生用PlayerのためのAVFoundationをimportします。

音声再生用のプレイヤーを用意します。

PoolIDとRegionを設定して任意の文字を送るだけです。
注意点として、AWSより取得したURLからさらに音声ファイルを取得しているのですが、音声ファイルを取得するタイミングでサブスレッドにしています。

この処理を入れておかないと、音声ファイルのダウンロードが完了するまでアプリが固まります。
必ずサブスレッド化しておきましょう。

4. まとめ