2017-10-08 2 views
0

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. enter image description here

Toute aide serait grandement appréciée.

Répondre

0

J'ai eu le même problème. J'ai sauvegardé le fichier pour que je puisse le lire ligne par ligne, en accédant aux objets JSON quand j'ai besoin de mettre en évidence les mots en cours de lecture. Rappelez-vous que ce n'est probablement pas le moyen le plus efficace, mais un moyen facile d'avancer et de travailler sur les choses amusantes.

J'essaie différentes façons de travailler avec Polly, mettra à jour la réponse si je trouve un meilleur moyen