相変わらず夜な夜なRaspberryPi搭載のVoice Kit V2で遊んでます。今回は前回のGoogle Cloud Text-To-Speechに続き、Amazonの読み上げAPIであるAmazon Pollyで日本語読み上げを試してみようと思います。
目次
前段
愛しいVoice Kit V2です。
AmazonではなくGoogle CloudのText-To-Speechを試してみたい人は前回の記事を見ていただければ。
ラズベリーパイに日本語で喋らせる[その1]Google Cloud Text-To-Speech
Amazonにも同様の読み上げAPIがあり、料金体系もGoogleと(見た感じ)ほぼ一緒です。合成音声の完成度やAPIのデキなどが気になるところなので、実際に日本語読み上げを試してみます。
Amazon Polly
公式はこちら
トップページで日本語音声も聴くことができます。Mizuki(女性)とTakumi(男性)の2パターンですね。これに関してはGoogleの方が選択肢が多いです。ここで試聴する感じではGoogleと大差はないかも。。
続いて料金について。
まずは無料枠を見てみます。(2020.03.05現在)
機能 | 最初の発話リクエストから 12 か月間 |
---|---|
スタンダード音声 | 0〜500 万文字 |
ニューラル音声 | 0〜100 万文字 |
ニューラル音声の方がハイテクな音声なのでしょう。どちらも充分な無料枠だと思います。
ただ最初の12ヶ月からは有料になるようですね。
機能 | 有料使用 |
---|---|
スタンダード音声 | 100 万文字あたり $4.00(USD) |
ニューラル音声 | 100 万文字あたり $16.00(USD) |
有料部分に関してはGoogleと同じってことでしょうか。しかしGoogleの無料枠は無期限なのでコスト的にはGoogleの方が安い(はず)です。後は機能面で比較ってことかな。
ではPollyでTTSを
実際にAPIをPythonから利用していみたいと思います。流れ的にはGoogle Cloud Text-To-Speechと同じで、事前に認証系の設定が必要です。
まずはサービスキーが必要なので作りましょう。(シークレットアクセスキーが分かるなら)既存のものでもいいです。新しく作る場合はIAMのユーザーページから。
[アクセスキーの作成]ボタンをクリックすると、ダイアログが表示されアクセスキーIDとシークレットが表示されます。このシークレットアクセスキーはコピーしておきます。また今回は使いませんがcsvのダウンロードもしておきましょう。このダイアログを閉じると二度とダウンロードできないので。
なお、APIを使用するユーザーにPollyのAccess権限が必要です。ポリシーをアタッチするか、権限のあるグループ(Developersとか)にユーザーを追加するなどしておいてください。
AWSの設定といえばこれぐらいです。続いてPython用のAWSライブラリbotoをインストールしておきます。
$ pip install boto3 #環境によってはpip3です
以上で準備は完了。
Pollyサンプル
何かテキストを入力するとMizukiさんが読み上げてくれるサンプルです。
#!/usr/bin/env python3 import sys import subprocess import boto3 polly_client = boto3.Session( aws_access_key_id='サービスアクセスキーID', aws_secret_access_key='シークレットアクセスキー', region_name='リージョン(ap-northeast-1とか)').client('polly') while True: print('何か入力してエンターを押してね(CTRL+Cで終了)') response = polly_client.synthesize_speech(VoiceId='Mizuki', OutputFormat='mp3', Text=input()) with open('speech.mp3', 'wb') as f: f.write(response['AudioStream'].read()) subprocess.run(['mpg321', '-q', 'speech.mp3'])
Sessionに渡す認証情報はご自分のものに書き換えてください。
音声はmp3でダウンロードしてます。wavの方が再生が簡単だったのですが、ぱっと見た感じwavで落とす方法がなさげだったので、あきらめてmpg321で再生しています。ここはmp3が再生できたら何でもいいです。mpg321をラズベリーパイにインストールする場合は、普通に sudo apt install mpg321
でOKです。
無事再生できたでしょうか?
色んなテキストを読み上げてもらいましたが、正直Googleと大差無い気もしますね・・。細かいところまで調べてませんが、どちらかが突出して優れているというわけでもなさそうな印象。であれば無料枠が無期限のGoogleに軍配があがるかなあ、と思っていたんですが、そういや完全無料スタンドアローンのOpenJTalkを試していないことを思い出しました。
というわけで、次回はOpenJTalkを試してみようと思います。
関連する記事
- ラズベリーパイに日本語で喋らせる[その1]Google Cloud Text-To-Speech
- ラズベリーパイに日本語で喋らせる[その3]Open JTalk
- Google AIY Voice Kit V2をキーボード・モニター無しでセットアップして日本語会話まで
- Google AIY Voice Kit V2の基本操作サンプル集
- 【ラズパイ】Voice KitにSnowboyを入れてホットワードでSwithBotを操る【よしこちゃん】