LoginSignup
14
6

More than 5 years have passed since last update.

Amazon Pollyを触ってみる

Posted at

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です。
ただし、残念ながら日本語は未対応のようです。

test.pls
<?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でメールか何かを音声として出力してみようかと考えています。

14
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
6