Может кто-нибудь взглянуть и понять, что я могу делать неправильно?
Я рассчитываю потратить хотя бы на "небольшую" компанию цены, как только я закончу!
Сначала я конвертирую mp3 -> wav с принудительным битрейтом 16000, а затем отправляю его все вместе, и внутренняя часть nodejs должна выполнить правильное разбиение по буферу.
const path = require('path')
const Houndify = require('houndify')
const Lame = require("node-lame").Lame
const myFile = path.join(__dirname, 'hey-jude-trimmed.mp3')
const main = async () => {
console.log(myFile)
let buffer
const decoder =
new Lame({
output: 'buffer',
bitrate: '16',
'force-bitrate': true
})
.setFile(myFile)
try {
await decoder.decode()
buffer = decoder.getBuffer()
} catch (e) {
console.log('problem decoding mp3 to wav')
console.log(e)
}
if (buffer) {
const request = new Houndify.VoiceRequest({
clientId: '<my-id-here>',
clientKey: '<my-key-here>',
requestInfo: {
UserID: 'test_user',
Latitude: 37.388309,
Longitude: -121.973968
},
sampleRate: 16000,
convertAudioToSpeex: false,
enableVAD: true,
onTranscriptionUpdate: (transcript) => {
console.log('Partial Transcript:', transcript.PartialTranscript)
},
onResponse: (response, info) => {
console.log('Houndify success')
console.log(response)
console.log(info)
console.log(JSON.stringify(response, null, 2))
},
onError: (err, info) => {
console.log('Houndify error')
console.log(err)
console.log(info)
console.log(info.getTotalDuration())
}
})
request.write(buffer)
request.end()
}
}
main()