function floatTo16BitPCM(output, offset, input){
for (var i = 0; i < input.length; i++, offset+=2){
var s = Math.max(-1, Math.min(1, input[i]));
output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true);
}
}
function writeString(view, offset, string){
for (var i = 0; i < string.length; i++){
view.setUint8(offset + i, string.charCodeAt(i));
}
}
function encodeWAV(samples){
var buffer = new ArrayBuffer(44 + samples.length * 2);
var view = new DataView(buffer);
/* RIFF identifier */
writeString(view, 0, 'RIFF');
/* RIFF chunk length */
view.setUint32(4, 36 + samples.length * 2, true);
/* RIFF type */
writeString(view, 8, 'WAVE');
/* format chunk identifier */
writeString(view, 12, 'fmt ');
/* format chunk length */
view.setUint32(16, 16, true);
/* sample format (raw) */
view.setUint16(20, 1, true);
/* channel count */
view.setUint16(22, 2, true);
/* sample rate */
view.setUint32(24, sampleRate, true);
/* byte rate (sample rate * block align) */
view.setUint32(28, sampleRate * 4, true);
/* block align (channel count * bytes per sample) */
view.setUint16(32, 4, true);
/* bits per sample */
view.setUint16(34, 16, true);
/* data chunk identifier */
writeString(view, 36, 'data');
/* data chunk length */
view.setUint32(40, samples.length * 2, true);
floatTo16BitPCM(view, 44, samples);
return view;
}
हाय, मैं इस स्कूल कोड के लिए ऑडियो रिकॉर्ड करने के लिए इस स्रोत कोड का उपयोग कर रहा हूं। यह 44100Hz और 16 बिट में ऑडियो रिकॉर्ड करता है। मैं 16000 हर्ट्ज और 16 बिट में ऑडियो रिकॉर्ड करने के लिए रिकॉर्डिंग सेटिंग्स बदलना चाहता हूं। मैंने फ़ंक्शन एन्कोड WAV में 44 को संशोधित करने की कोशिश की लेकिन यह काम नहीं किया।वेब पर प्रीसेट ऑडियो, प्रीसेट: 16000Hz 16 बिट
function encodeWAV(samples){
var buffer = new ArrayBuffer(44 + samples.length * 2);
var view = new DataView(buffer)
इसके अलावा, मैं floadRToBitPCM बदलने की कोशिश की है। मैंने 44 से 16 बदलने की कोशिश की लेकिन यह भी काम नहीं किया।
floatTo16BitPCM(view, 44, samples);
आप मुझे इस मुद्दे के साथ मदद कर सकते हैं ?? मुझे नहीं पता कि इस स्रोत कोड को कैसे संशोधित करें।
आपका नमूनाRate चर सेट किया जा रहा है? –