Używam Google Cloud API do konwersji tekstu na tekst z zapleczem NodeJS. Aplikacja musi być w stanie nasłuchiwać poleceń głosowych i przekazywać je do zaplecza jako bufor. W tym celu muszę wysłać bufor poprzedniego audio po wykryciu ciszy.Jak wyodrębnić poprzedni dźwięk (z mikrofonu) jako bufor po wykryciu ciszy (JS)?
Każda pomoc zostanie doceniona. W tym kod js poniżej
if (!navigator.getUserMedia)
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true}, success, function (e) {
alert('Error capturing audio.');
});
} else alert('getUserMedia not supported in this browser.');
var recording = false;
window.startRecording = function() {
recording = true;
};
window.stopRecording = function() {
recording = false;
// window.Stream.end();
};
function success(e) {
audioContext = window.AudioContext || window.webkitAudioContext;
context = new audioContext();
// the sample rate is in context.sampleRate
audioInput = context.createMediaStreamSource(e);
var bufferSize = 4096;
recorder = context.createScriptProcessor(bufferSize, 1, 1);
recorder.onaudioprocess = function (e) {
if (!recording) return;
console.log('recording');
var left = e.inputBuffer.getChannelData(0);
console.log(convertoFloat32ToInt16(left));
};
audioInput.connect(recorder);
recorder.connect(context.destination);
}
Nie wiem, w czym potrzebujesz pomocy: Przesyłanie danych do tego interfejsu API? Wykryć ciszę? Podziel swoje nagrane dane? – Kaiido
Wysyłanie danych do tego interfejsu API i uzyskiwanie danych wyjściowych w czasie rzeczywistym. – azhar
@azhar Czy interfejs API obsługuje komunikację w czasie rzeczywistym? – guest271314