[英]Using Bing Speech Recognition API with node.js Bot Framework on Skype
[英]Skype Speech Recognition API with node.js Bot Framework
我正在將Skype客戶端用於機器人應用程序。 我正在使用語音轉文字
有兩種處理語音的模式:提及在此處輸入鏈接描述 BY dandriscoll
大多數Bot Framework渠道均支持模式1,盡管客戶端支持有所不同。 在這種情況下,您可以將WAV上傳到Bing Speech API,它將返回轉錄的結果。
支持模式2的唯一Bot Framework渠道是Skype呼叫。 在這種情況下,您會收到音頻流,並可以使用Bing Speech客戶端庫獲取實時轉錄提要。
這里要使用模式2的示例代碼
var restify = require('restify');
var builder = require('botbuilder');
var calling = require('botbuilder-calling');
var prompts = require('./prompts');
var speechService = require('./speech-service.js');
//=========================================================
// Bot Setup
//=========================================================
// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat bot
var chatConnector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var chatBot = new builder.UniversalBot(chatConnector);
server.post('/api/messages', chatConnector.listen());
// Create calling bot
var connector = new calling.CallConnector({
callbackUrl: 'https://example.in/api/calls',
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var bot = new calling.UniversalCallBot(connector);
server.post('/api/calls', connector.listen());
//=========================================================
// Chat Dialogs
//=========================================================
// Add root dialog
bot.dialog('/', function (session) {
session.send('Headfitted Bot application... !');
session.beginDialog('/record');
});
bot.dialog('/record', [
function (session) {
session.send(prompts.record.intro);
calling.Prompts.record(session, prompts.record.prompt, { playBeep: true });
},
function (session, results) {
if (results.response) {
console.log(results.response.recordedAudio);
session.endDialog(prompts.record.result, results.response.lengthOfRecordingInSecs);
} else {
session.endDialog(prompts.canceled);
}
}
]);
當我運行上面的演示時,我在命令提示符下收到了響應
{ recordedAudio: <Buffer 30 26 b2 75 8e 66 cf 11 a6 d9 00 aa 00 62 ce 6c 3d 13 00 00 00 00 00 00 06 00 00 00 01 02 a1 dc ab 8c 47 a9 cf 11 8e e4 00 c0 0c 20 53 65 68 00 00 00 ... >,
lengthOfRecordingInSecs: 2.581 }
現在,我想使用recordedAudio並將語音傳遞到文本API函數。 流將是我錄制的音頻
speechService.getTextFromAudioStream(stream)
.then(function (text) {
session.send(processText(text));
})
.catch(function (error) {
session.send('Oops! Something went wrong. Try again later.');
console.error(error);
});
我沒有在Google和Bot Framework上搜索,但是沒有運氣。
我認為您需要將音頻作為Base64發送。 至少BING SPEECH的其余api使用音頻作為base64。 您可以測試他們的瀏覽器演示並嗅探網絡。 他們發送如下內容。
請求網址: https : //api.mixpanel.com/track/?data=&ip=1& _ =1511591715549
簽出鏈接: Azure示例頁面
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.