2016-12-10 2 views
4

これは私のスクリプトです:JavaScript SDKを使用してAWS PollyでAudioStreamレスポンスを再生する方法は?

<script src="https://sdk.amazonaws.com/js/aws-sdk-2.7.13.min.js"></script> 
<script> 
    AWS.config.region = 'eu-west-1'; 
    AWS.config.accessKeyId = 'FOO'; 
    AWS.config.secretAccessKey = 'BAR'; 

    var polly = new AWS.Polly({apiVersion: '2016-06-10'}); 

    var params = { 
     OutputFormat: 'mp3', /* required */ 
     Text: 'Hello world', /* required */ 
     VoiceId: 'Joanna', /* required */ 
     SampleRate: '22050', 
     TextType: 'text' 
    }; 

    polly.synthesizeSpeech(params, function(err, data) { 
     if (err) console.log(err, err.stack); // an error occurred 
     else  console.log(data);   // successful response 
    }); 
</script> 

要求が成功し、私は応答のこの種の取得:

enter image description here

どのように私は応答のこの種を使用するのですか?私はレスポンスが逆シリアル化されたオーディオであることを理解していますが、実際にはHTML5オーディオ要素の中でどのように再生しますか? https://stackoverflow.com/a/26320913/1325575

答えて

14
var uInt8Array = new Uint8Array(audioStream); 
var arrayBuffer = uInt8Array.buffer; 
var blob = new Blob([arrayBuffer]); 
var url = URL.createObjectURL(blob); 

audioElement.src = url; 
audioElement.play(); 

私はあなたが取るしたい場合はあなたのためのプロセス全体を処理しますChattyKathyというJavaScriptライブラリを作成:

さらに、上でこの答えは、なぜ、オーディオデータに適した配列のこのタイプがある説明します簡単な方法。

AWS Credentialsオブジェクトに渡して、何を言うか教えてください。彼女はAWSを呼び出し、応答を変換し、オーディオを再生します。

var settings = { 
    awsCredentials: awsCredentials, 
    awsRegion: "us-west-2", 
    pollyVoiceId: "Justin", 
    cacheSpeech: true 
} 

var kathy = ChattyKathy(settings); 

kathy.Speak("Hello world, my name is Kathy!"); 
kathy.Speak("I can be used for an amazing user experience!"); 
+0

Woah、man、wow。 –

+0

IEに問題がありました。約束は関数say(message)で定義されていませんでした。 – user525504

+0

IEで約束エラーを修正するには、 user525504

関連する問題