我正在使用Microsoft bot框架和Node.js开发一个bot。该应用程序已部署在Skype频道中。用户可以使用文本或语音命令与机器人进行交互。在移动版本的Skype中,我们可以使用移动设备中可用的录音图标发送语音消息。 Bot仿真器自动将语音转换为文本。我希望在Skype频道中也一样。当我在Skype中发送即时录音时,它会以我听不懂的方式回复。请重试。我不知道如何在Skype中处理。我希望用户发送录音。这样我就可以将录音发送到Bing Speech api并获取相应的文本。请帮我解决。 注意:我不想使用Skype通话。只是类似于whatsapp的普通聊天,用户可以发送文本和即时语音记录。
对此进行小的更新。现在我知道了如何找到附件。使用 session.message.attachments [0] ,我得到了以下json:
attachments:
[ { contentType: 'audio',
contentUrl: 'https://smba.trafficmanager.net/apis/v3/attachments/0-sa-d6-XXXXXXXXXXXXXXXXXXXX/views/original',
thumbnailUrl: 'https://smba.trafficmanager.net/apis/v3/attachments/0-sa-d6-XXXXXXXXXXXXXXXXXXXX/views/thumbnail',
name: '3-audioMessage.m4a' } ],
音频以.m4a格式存储。但是Bing语音仅支持.wav格式。我需要将其转换为.wav格式
let load = require('audio-loader');
let msg = session.message;
let audiouri =msg.attachments[0].contentUrl+"/"+msg.attachments[0].name;
load(audiouri).then(function (buffer) {
console.log("Audio Buffer is ",buffer); // => <AudioBuffer>
var wav = toWav(buffer);
console.log("my wav format audio is " ,wav);
}).catch(function(error)
{
console.log("Catched error is" ,error);
});
在这里,我收到错误消息,因为未找到来源。我通过读取本地.m4a文件进行检查,并且发生相同的错误。但是在其他格式(例如.mp3)的情况下,我得到了缓冲区。仅当我尝试读取.m4a文件时,才会发生错误。通过提供参考来帮助我在node.js中将.m4a文件转换为.wav格式