2016-07-18 12 views
0

Ich bin mit dem Watson-Entwickler-Cloud-Modul nach zusammen mit dem Beispiel: https://www.npmjs.com/package/watson-developer-cloud#speech-to-textKeine Zeitstempel in Watson Speech-to-Text

Leider keine meiner Optionen scheinen zu funktionieren:

timestamps: true, profanity_filter: false, word_confidence:true 

übergebe ich sie an der richtigen Stelle?

var watson = require('watson-developer-cloud'); 
var fs = require('fs'); 

var speech_to_text = watson.speech_to_text({ 
    url: "https://stream.watsonplatform.net/speech-to-text/api", 
    username: 'xxxxx', 
    password: 'xxxxx', 
    version: 'v1' 
}); 


fs.createReadStream('./resources/speech.wav') 
    .pipe(speech_to_text.createRecognizeStream({ content_type: 'audio/l16; rate=44100', timestamps: true, profanity_filter: false, word_confidence:true })) 
    .pipe(fs.createWriteStream('./transcription2.txt')); 

Ich bekomme das Transkript zurück, aber ich möchte die Zeitstempel und das Vertrauensergebnis. Dies ist ein Beispiel das, was ich bin immer wieder:

„fünf Anrufe weg von einer großen **** Woche mit“

Wie Sie sehen können, keine Zeitstempel, kein Konfidenzpunktwert und Obszönitäten werden immer noch gefiltert.

Antwort

0

Ich würde einen Blick auf den Stream-Ereignisse für mehr Kontrolle über die Ausgabe, zum Beispiel erkennen nehmen:

// Create the stream. 
var recognizeStream = speech_to_text.createRecognizeStream(params); 

// Pipe in the audio. 
fs.createReadStream('audio-file.wav').pipe(recognizeStream); 

// Pipe out the transcription to a file. 
recognizeStream.pipe(fs.createWriteStream('transcription.txt')); 

// Get strings instead of buffers from 'data' events. 
recognizeStream.setEncoding('utf8'); 

// Listen for events. 
recognizeStream.on('data', function(event) { onEvent('Data:', event); }); 
recognizeStream.on('results', function(event) { onEvent('Results:', event); }); 
recognizeStream.on('error', function(event) { onEvent('Error:', event); }); 
recognizeStream.on('close-connection', function(event) { onEvent('Close:', event); }); 

// Displays events on the console. 
function onEvent(name, event) { 
    console.log(name, JSON.stringify(event, null, 2)); 
}; 

Die API documentation hat auch ein Beispiel.

+0

Danke, ich schätze die Hilfe. Ich habe die richtige Ausgabe von 'recogniseStream.on (' Ergebnisse ', Funktion (Ereignis) {onEvent (' Ergebnisse: ', Ereignis);});' Aber ich verstehe nicht ganz die recognizeStream.pipe api. Wie würde ich Ergebnisse in die Datei anstatt in Daten schreiben? – Ashbury

+1

In Ihrem Event-Handler würden Sie einfach Node.js Funktion 'fs.writeFile (Datei, Daten [, Optionen], Callback)' verwenden. Einzelheiten finden Sie unter https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback –