ibm-watson-cognitive 使用WebSockets(Node.js)转录音频文件

示例

本示例说明如何使用IBM Watson语音转文本服务来识别音频文件的类型并在该文件中产生语音文本的转录。

此示例需要语音转文本服务凭据和Node.js

  1. 为Watson Developer Cloud Node.jsSDK安装npm模块:

$ npm install watson-developer-cloud

  1. 创建一个JavaScript文件(例如app.js)并将以下代码复制到其中。确保为您的语音转文本服务实例输入username和password。

var SpeechToTextV1 = require('watson-developer-cloud/speech-to-text/v1');
var fs = require('fs');

var speech_to_text = new SpeechToTextV1({
  username: 'INSERT YOUR USERNAME FOR THE SERVICE HERE',
  password: 'INSERT YOUR PASSWORD FOR THE SERVICE HERE',
  url: 'https://stream.watsonplatform.net/speech-to-text/api'
});

var params = {
  content_type: 'audio/flac'
};

// 创建流,
var recognizeStream = speech_to_text.createRecognizeStream(params);

// 传送一些音频,
fs.createReadStream('0001.flac').pipe(recognizeStream);

// 并抄录转录。
recognizeStream.pipe(fs.createWriteStream('transcription.txt'));

// 要从接收到的“数据”事件中获取字符串而不是缓冲区:
recognizeStream.setEncoding('utf8');

// 聆听“数据”事件,仅了解最终文本。
// 侦听“结果”事件,以获取包含中期结果,时间安排等的原始JSON。   
['data', 'results', 'error', 'connection-close'].forEach(function(eventName) {
  recognizeStream.on(eventName, console.log.bind(console, eventName + ' event: '));
});

  1. 将样本音频文件0001.flac保存到同一目录。该示例代码设置为处理FLAC文件,但是您可以修改params示例代码的这一部分,以从其他格式的音频文件中获取转录。支持的格式包括WAV(类型audio/wav),OGG(类型audio/ogg)和其他格式。有关完整列表,请参见语音转文本API参考。

  2. 运行应用程序(使用包含示例代码的文件的名称)

$ node app.js

运行该应用程序后,您将从运行该应用程序的目录中的文件transcription.txt中的音频文件中找到转录的文本。