const request = require('request-promise') const uri = `https://api.wit.ai/speech` const apikey = '<...>' // wit.ai module.exports = async (body) => { // post const response = await request.post({ uri, headers: { 'Accept': 'audio/x-mpeg-3', 'Authorization': `Bearer ` + apikey, 'Content-Type': 'audio/mpeg3', 'Transfer-Encoding': 'chunked' }, body }) // return JSON.parse(response)._text }
const apiai = require('apiai'); // , - , , 36 , id // const uniqid = 'e4278f61-9437-4dff-a24b-aaaaaaaaaaaa'; const app = apiai('<...>'); module.exports = (q, uid) => { // , return new Promise((resolve, reject) => { uid = uid + '' // don't touch, magic const cuniqid = uniqid.slice(0, uniqid.length - uid.length) + uid // const request = app.textRequest(q, { sessionId: uniqid }) // ! request.on('response', (response) => { resolve(response) }) // ! request.on('error', (error) => { reject(error); }) // , request.end(); }) }
const vk = require('api.vk.com') const request = require('request-promise') const Bot = require('node-vk-bot-api') const asr = require('./asr') const assistent = require('./assistent') const token = require('./token'); // api const api = (method, options) => { return new Promise((resolve, reject) => { vk(method, options, (err, result) => { if (err) return reject(err) resolve(result) }) }) } // const bot = new Bot({ token }) // bot.on(async (object) => { // catcher , try { // api('messages.setActivity', { access_token: token, type: 'typing', user_id: object.user_id }) api('messages.markAsRead', { access_token: token, message_ids: object.message_id }) //, uri let uri // if (object.attachments.length != 0) { // const [msg] = (await api('messages.getById', { access_token: token, message_ids: object.message_id, v: 5.67 })).items // , if (msg.attachments[0].type != 'audio' || msg.attachments[0].type != 'doc' || msg.attachments[0].doc.type != 5) { uri = null } // uri try { if (msg.attachments[0].type === 'doc') uri = msg.attachments[0].doc.preview.audio_msg.link_mp3 else if (msg.attachments[0].type === 'audio') uri = msg.attachments[0].audio.url } catch (e) { uri = null } // } else if (object.forward != null) { try { uri = object.forward.attachments[0].doc.preview.audio_msg.link_mp3 } catch (e) { uri = null } } else { uri = null } // if (uri === '') { throw (' ') } if (uri == null) { // c, dialogflow if (object.body != '') { const { speech } = (await assistent(object.body, object.user_id)).result.fulfillment object.reply(speech) return } else { throw (' . ') } } // const audio = await request.get({ uri, encoding: null }) let phrase try { phrase = await asr(audio) } catch (e) { console.error('asr error', e) throw (' ') } // if (phrase != null) { object.reply(phrase, (err, mesid) => { }); } else { throw (' ') } } catch (error) { // console.error(error) object.reply('string' == typeof error ? error : ' . , !') } }) // , long pong. bot.listen()
Source: https://habr.com/ru/post/346334/