Ich erhalte eine verschachtelte 16 Bit PCM Samples über die Leitung. Jede Probe ist signiertPCM Web Audio API Javascript - Ich bekomme verzerrte Sounds
Ich lese es als Int16bit-Array, können wir ALL_DATA nennen. So ist jeder der Array-Einträge ein 16-Bit-Sample.
Da es interleaved ist extrahiere ich es in 2 Kanäle R-L-R-L Ich am Ende mit 2 (16 Bit) Arrays die halbe Größe von ALL_DATA-Array.
Danach gehe ich über jedes Beispiel und normalisieren es auf Float32Array, weil das ist, was Web Audio API verwendet.
var normalisierteSamples = (Beispiel> 0)? Probe/32768: Probe/-32768;
Ist dies der richtige Weg?
Ich bekomme verzerrte Sounds. Sie können sehen, was vor sich geht. Wenn man also klassische Gitarre hört, klingt es wie elektrisch mit Verzerrung.
Für Argumente willen Ich stelle den Beispielcode nach unten, aber Dieser Code behandelt
Monoton das Beispiel einfacher zu machen, so dass wir es nicht so gut
var startTime = 0;
var fileReader = new FileReader();
fileReader.onload = function (e) {
var data = new DataView(e.target.result);
var audio = new Int16Array(data.byteLength/Int16Array.BYTES_PER_ELEMENT);
var len = audio.length;
for (var jj = 0; jj < len; ++jj) {
audio[jj] = data.getInt16(jj * Int16Array.BYTES_PER_ELEMENT, true);
}
var right = new Float32Array(audio.length);
var channleCounter = 0;
for (var i = 0; i < audio.length;) {
var normalizedRight = (audio[i] > 0) ? audio[i]/32768 : audio[i]/-32768;
i = i + 1;
right[channleCounter] = normalizedRight;
channleCounter++;
}
var source = audioContext.createBufferSource();
var audioBuffer = audioContext.createBuffer(1, right.length, 44100);
audioBuffer.getChannelData(0).set(right);
source.buffer = audioBuffer;
source.connect(audioContext.destination);
source.noteOn(startTime);
startTime += audioBuffer.duration;
};
Irgendwelche Vorschläge verschachteln müssen das könnte dazu führen, dass der verzerrte Sound hilft. Ich habe die PCM-Daten geschrieben, bevor ich es auf der Serverseite an eine Datei sende, ist gut und Sound ist perfekt.
Ihr Beitrag ENDLICH ich Audio Arbeits ... Dank eine Tonne für die Buchung Ihre Bemühungen, machte es mein Audio in der Nähe von kristallklar jetzt :) – ole
hier erwähnt, dass Sie Mono-Ton verwendet haben, erhalten gemacht, es zu machen einfach. Ich versuche es mit Stereo-Sound. Weißt du, wie man es macht? –