Я использую клиент Skype для приложения бота. Я использую преобразование речи в текст
Есть два шаблона для работы со звуковой речью: упоминание введите здесь описание ссылки BY dandriscoll
- клиент записывает небольшой аудиофайл (например, WAV) и загружает его как вложение в бот
- клиент отправляет боту аудиопоток
Большинство каналов Bot Framework поддерживают шаблон 1, хотя поддержка клиентов различается. В этой ситуации вы можете загрузить WAV в Bing Speech API, и он вернет записанный результат.
Единственный канал Bot Framework, поддерживающий шаблон 2, - это Skype Calling. В этой ситуации вы получаете аудиопоток и можете использовать клиентские библиотеки 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 }
Теперь я хотел использовать записанный аудио и перейти к функция 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, но не повезло.