Amazon Pollyとは
Amazon AI サービスの1つで、文章をリアルな音声に変換するサービスです。
現在では、24の言語と47の音声が利用可能です。
プレーンテキストか、SSMLのどちらかから、音声を生成します。
公式ドキュメント:http://docs.aws.amazon.com/ja_jp/polly/latest/dg/what-is.html
SSMLでの音声生成
Pollyではテキストをそのまま読んでくれますが、
SSMLで記述するれば、発音、ボリューム、話す速度などをカスタマイズすることも出来ます。
ex)
<speak><prosody volume='-10dB' pitch='x-low' rate='x-slow'>こんにちは<break time='3s'/>元気?</prosody></speak>
このように、音量、ピッチ、スピードを調整できます。
<break time='3s'/>を入れることで、3秒間隔を空けることもできます。
Pollyでは日本語の声はMizukiさんという女性の声が用意されていますが、
このSSMLを再生させると、おばあさんみたいな声になりました。
その他、SSMLについては下記を参照ください。
https://www.w3.org/TR/2010/REC-speech-synthesis11-20100907/
Lexiconsの設定
Lexiconを登録することで、単語の発音をカスタマイズできます。
たとえば、PPAPという文字列をペンパイナッポーアッポーペンと読ませることが出来るようになります。
やり方は、こちらのファイルをLexiconにアップロードし、音声生成の際に指定すればOKです。
ただし、残念ながら日本語は未対応のようです。
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
alphabet="ipa"
xml:lang="es-US">
<lexeme>
<grapheme>PPAP</grapheme>
<alias>pen pineapple apple pen</alias>
</lexeme>
</lexicon>
APIで音声を生成する
SynthesizeSpeechというAPIを呼び出すことでも、音声をmp3ファイルに出力したり、ストリームで受け取ることができます。
JavaScriptで実行する際を例に記載します。
var params = {
LexiconNames: [
"example",
//複数指定可
],
OutputFormat: "mp3" | "ogg_vorbis" | "pcm", //必須
SampleRate: "8000" | "16000" | "22050",
Text: "STRING_VALUE", //必須
TextType: "ssml" | "text"
VoiceId: "Mizuki", //必須
};
polly.synthesizeSpeech(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
- SampleRateに指定できる値
OutputFormat | SampleRateに指定できる値 | デフォルト値 |
---|---|---|
mp3, ogg_vorbis | 8000, 16000, 22050 | 22050 |
pcm | 8000, 16000 | 16000 |
- TextTypeのデフォルト値:text(プレーンテキスト)
Response Elements
- ContentType
リクエストのOutputFormat | 返されるContentType |
---|---|
mp3 | audio/mpeg |
ogg_vorbis | audio/ogg |
pcm | audio/pcm |
RequestCharacters
合成された文字の数。AudioStream- (Buffer, Typed Array, Blob, String, ReadableStream)
合成音声を含むストリーム。
参考:http://docs.aws.amazon.com/ja_jp/polly/latest/dg/API_SynthesizeSpeech.html#API_SynthesizeSpeech_ResponseSyntax
詳細はこちらをご覧ください。
最後に
日本語の文章だと、聞き取りずらいこともありますが
英語の発音はしっかりしているみたいです。
今度はPollyでメールか何かを音声として出力してみようかと考えています。