首页 > 解决方案 > 将音频文件传递给 Assistant SDK

问题描述

我正在尝试使用 Node.js 将音频文件传递给 Google Assistant SDK,特别是这个库:https ://github.com/endoplasmic

我的音频文件是 wav,格式如下:

{ audioFormat: 1,
  endianness: 'LE',
  channels: 1,
  sampleRate: 24000,
  byteRate: 48000,
  blockAlign: 2,
  bitDepth: 16,
  signed: true }

我要做的是创建 wav 文件的 readFile 并将其写入助手对话,如下所示:

fs.readFile(`${path.resolve(__dirname, 'response.wav')}`, (err, file) => {
  if(err) console.log(err)
  assistant.start(global.config.conversation, (conversation) => {
    conversation.write(file)
     return self.startConversation(conversation)
     .then((data) => {
       console.log(data)
       //resolve(data)
     })
     .catch((err) => {
       console.log(err)
       //reject(err)
     })
   });

我遇到的问题是它什么也没有发生。如果即使尝试

.on('end-of-utterance', () => {
  console.log("Done speaking")
})
.on('transcription', (data) => {
  console.log(data)
})

但这里也没有任何记录。最终它会记录一个错误:

错误:服务不可用。在 ClientDuplexStream._emitStatusIfDone (/Users/Greg/Documents/Projects/st-gassist/node_modules/grpc/src/client.js:255:19) 在 ClientDuplexStream._receiveStatus (/Users/Greg/Documents/Projects/st-gassist/ node_modules/grpc/src/client.js:233:8) 在 /Users/Greg/Documents/Projects/st-gassist/node_modules/grpc/src/client.js:757:12 代码:14,元数据:元数据 { _internal_repr : {} }

有谁知道我该如何传递这个音频文件?我想传递一个音频文件,因为它是预先录制的消息,是录制麦克风的替代方法

标签: javascriptnode.jsgoogle-assistant-sdk

解决方案


推荐阅读