J'écris une application Angular 2 (construite avec cli angulaire), et en essayant d'utiliser l'API AWS Polly de synthèse vocale. Selon l'API, vous pouvez demander une sortie audio ainsi que des «Speech Marks» qui peuvent décrire la synchronisation des mots, les visèmes, etc. L'audio est fourni en format «mp3» et les marques vocales en tant que «application/x- json-stream ", que je comprends comme une" nouvelle ligne "délimitée JSON. Il ne peut pas être analysé avec JSON.parse() en raison des nouvelles lignes. J'ai encore été incapable de lire/analyser ces données. Je l'ai regardé plusieurs libs qui sont pour « JSON en continu » mais ils sont tous construits pour Node.js et ne fonctionne pas avec angulaire 2. Mon code est le suivant ...Comment analyser json newline délimité en Angular 2
onClick() {
AWS.config.region = 'us-west-2';
AWS.config.accessKeyId = 'xxxxx';
AWS.config.secretAccessKey = 'yyyyy';
let polly = new AWS.Polly();
var params = {
OutputFormat: 'json',
Text: 'Hello world',
VoiceId: 'Joanna',
SpeechMarkTypes:['viseme']
};
polly.synthesizeSpeech(params, (err, data) => {
if (err) {
console.log(err, err.stack);
} else {
var uInt8Array = new Uint8Array(data.AudioStream);
var arrayBuffer = uInt8Array.buffer;
var blob = new Blob([arrayBuffer]);
var url = URL.createObjectURL(blob);
this.audio.src = url;
this.audio.play(); // works fine
// speech marks info displays "application/x-json-stream"
console.log(data.ContentType);
}
});
navigateur Chrome Étrangement sait lire ces données et les affiche dans la réponse.
Toute aide serait grandement appréciée.