この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
Amazon Pollyのリリースについて、以下のブログでお知らせしました。
サービスリリースに合わせてAWS CLIもアップデートされています。Amazon PollyをAWS CLIから使ってみました。
やってみた
最新のAWS CLIのインストール
現時点でAmazon LinuxのyumリポジトリにあるAWS CLIはバージョンが古いです。
$ aws --version
aws-cli/1.6.5 Python/2.6.9 Linux/4.1.13-19.30.amzn1.x86_64
そこで最新のAWS CLIのZipファイルを取得して展開します。
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
確認。バージョンが1.11.23になっています。
$ /usr/local/aws/bin/aws --version
aws-cli/1.11.23 Python/2.6.9 Linux/4.1.13-19.30.amzn1.x86_64 botocore/1.4.80
aws configureでAmazon Pollyが使えるリージョンを指定しておきます。
$ aws configure
AWS Access Key ID [********************]:
AWS Secret Access Key [********************]:
Default region name [us-east-1]:
Default output format [None]:
describe-voices
ボイスの種類を取得します。
$ /usr/local/aws/bin/aws polly describe-voices
{
"Voices": [
{
"Gender": "Female",
"Name": "Joanna",
"LanguageName": "US English",
"Id": "Joanna",
"LanguageCode": "en-US"
},
{
"Gender": "Female",
"Name": "Mizuki",
"LanguageName": "Japanese",
"Id": "Mizuki",
"LanguageCode": "ja-JP"
},
<...snip...>
list-lexicons
発音辞書であるlexiconをリスト取得します。事前に登録しておいた、smokeymonkeyというlexiconが表示されています。
$ /usr/local/aws/bin/aws polly list-lexicons
{
"Lexicons": [
{
"Attributes": {
"LanguageCode": "en-US",
"LastModified": 1480547800.2980001,
"Alphabet": "ipa",
"LexemesCount": 1,
"LexiconArn": "arn:aws:polly:us-east-1:XXXXXXXXXXXX:lexicon/smokeymonkey",
"Size": 481
},
"Name": "smokeymonkey"
}
]
}
get-lexicon
lexiconの詳細情報を取得します。
$ /usr/local/aws/bin/aws polly get-lexicon --name smokeymonkey
{
"Lexicon": {
"Content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<lexicon version=\"1.0\" \n xmlns=\"http://www.w3.org/2005/01/pronunciation-lexicon\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n xsi:schemaLocation=\"http://www.w3.org/2005/01/pronunciation-lexicon \n http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd\"\n alphabet=\"ipa\" \n xml:lang=\"en-US\">\n <lexeme>\n <grapheme>sasaki</grapheme>\n <alias>smokeymonkey</alias>\n </lexeme>\n</lexicon>",
"Name": "smokeymonkey"
},
"LexiconAttributes": {
"LanguageCode": "en-US",
"LastModified": 1480547800.2980001,
"Alphabet": "ipa",
"LexemesCount": 1,
"LexiconArn": "arn:aws:polly:us-east-1:XXXXXXXXXXXX:lexicon/smokeymonkey",
"Size": 481
}
}
put-lexicon
新たにlexiconを登録します。指定したファイルをPUTします。
$ /usr/local/aws/bin/aws polly put-lexicon --name test --content file://test.xml
確認。testというlexiconが増えています。
$ /usr/local/aws/bin/aws polly list-lexicons
{
"Lexicons": [
{
"Attributes": {
"LanguageCode": "en-US",
"LastModified": 1480547800.2980001,
"Alphabet": "ipa",
"LexemesCount": 1,
"LexiconArn": "arn:aws:polly:us-east-1:XXXXXXXXXXXX:lexicon/smokeymonkey",
"Size": 481
},
"Name": "smokeymonkey"
},
{
"Attributes": {
"LanguageCode": "en-US",
"LastModified": 1480552210.5350001,
"Alphabet": "ipa",
"LexemesCount": 1,
"LexiconArn": "arn:aws:polly:us-east-1:XXXXXXXXXXXX:lexicon/test",
"Size": 486
},
"Name": "test"
}
]
}
delete-lexicon
lexiconを削除します。
$ /usr/local/aws/bin/aws polly delete-lexicon --name test
確認。testというlexiconが無くなっています。
$ /usr/local/aws/bin/aws polly list-lexicons
{
"Lexicons": [
{
"Attributes": {
"LanguageCode": "en-US",
"LastModified": 1480547800.2980001,
"Alphabet": "ipa",
"LexemesCount": 1,
"LexiconArn": "arn:aws:polly:us-east-1:XXXXXXXXXXXX:lexicon/smokeymonkey",
"Size": 481
},
"Name": "smokeymonkey"
}
]
}
synthesize-speech
メインで使う機能ですね。文章読み上げです。ここではoutputをmp3とし、mp3ファイルで保存しています。
$ /usr/local/aws/bin/aws polly synthesize-speech --text "Classmethod is blog company." --voice-id Joanna --output-format mp3 speech.mp3
{
"ContentType": "audio/mpeg",
"RequestCharacters": "27"
}
保存されたファイルの確認。ちゃんと保存されています。
$ ls -alF speech.mp3
-rw-rw-r-- 1 ec2-user ec2-user 11957 12月 1 09:32 speech.mp3
さいごに
次はSDKにもチャレンジしたいです!