@@ -193,9 +193,7 @@ <h3>Transcription:</h3>
193
193
194
194
// If MP3 is natively supported, use MediaRecorder
195
195
if ( isMP3Supported ) {
196
- // Speech-optimized settings
197
- const speechBitrate = 48000 ; // 48kbps bitrate - good for speech quality with smaller file size
198
- mediaRecorder = new MediaRecorder ( stream , { mimeType, audioBitsPerSecond : speechBitrate } ) ;
196
+ mediaRecorder = new MediaRecorder ( stream , { mimeType, audioBitsPerSecond : 128000 } ) ;
199
197
mediaRecorder . ondataavailable = event => {
200
198
if ( event . data . size > 0 ) audioChunks . push ( event . data ) ;
201
199
} ;
@@ -212,13 +210,12 @@ <h3>Transcription:</h3>
212
210
const sourceNode = audioContext . createMediaStreamSource ( stream ) ;
213
211
214
212
// Create a ScriptProcessorNode to process audio
215
- // Smaller buffer size (8192) for more efficient encoding
216
- audioProcessor = audioContext . createScriptProcessor ( 8192 , 1 , 1 ) ;
213
+ audioProcessor = audioContext . createScriptProcessor ( 16384 , 1 , 1 ) ;
217
214
let mp3Data = [ ] ;
218
215
219
- // Initialize MP3 encoder with speech-optimized settings
216
+ // Initialize MP3 encoder with proper sample rate
220
217
mp3EncoderSampleRate = audioContext . sampleRate ;
221
- mp3Encoder = new lamejs . Mp3Encoder ( 1 , mp3EncoderSampleRate , speechBitrate / 1000 ) ;
218
+ mp3Encoder = new lamejs . Mp3Encoder ( 1 , mp3EncoderSampleRate , 128 ) ;
222
219
223
220
audioProcessor . onaudioprocess = ( e ) => {
224
221
if ( ! isRecording ) return ;
@@ -233,7 +230,7 @@ <h3>Transcription:</h3>
233
230
sampleBuffer [ i ] = Math . max ( - 32768 , Math . min ( 32767 , samples [ i ] * 32768 ) ) ;
234
231
}
235
232
236
- // Encode to MP3 with speech-optimized settings
233
+ // Encode to MP3
237
234
const mp3buf = mp3Encoder . encodeBuffer ( sampleBuffer ) ;
238
235
if ( mp3buf . length > 0 ) {
239
236
mp3Data . push ( mp3buf ) ;
0 commit comments