Team Ai
Apppublic

eaglelandsonce/TensorFlowJSClass

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
script3.js70 linesDownload Raw Back to root
1const startButton = document.getElementById('startButton');2const stopButton = document.getElementById('stopButton');3const transcriptDiv = document.getElementById('transcript');4 5let model;6let audioContext;7let mediaRecorder;8let audioChunks = [];9let stream;10 11// Load the DeepSpeech model12async function loadModel() {13  model = await deepspeech.load();14  console.log('Model loaded');15}16 17// Function to start recording audio18function startRecording() {19  audioContext = new (window.AudioContext || window.webkitAudioContext)();20  navigator.mediaDevices.getUserMedia({ audio: true })21    .then(userStream => {22      stream = userStream;23      mediaRecorder = new MediaRecorder(stream);24      mediaRecorder.ondataavailable = event => {25        audioChunks.push(event.data);26      };27      mediaRecorder.onstop = processAudio;28      mediaRecorder.start();29      startButton.disabled = true;30      stopButton.disabled = false;31      console.log('Recording started');32    })33    .catch(err => console.error('Error accessing microphone', err));34}35 36// Function to stop recording audio37function stopRecording() {38  mediaRecorder.stop();39  stream.getTracks().forEach(track => track.stop());40  startButton.disabled = false;41  stopButton.disabled = true;42  console.log('Recording stopped');43}44 45// Function to process the recorded audio46async function processAudio() {47  const audioBlob = new Blob(audioChunks, { type: 'audio/wav' });48  const arrayBuffer = await audioBlob.arrayBuffer();49  const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);50  const audioData = audioBuffer.getChannelData(0);51  52  // Normalize the audio data53  const float32Array = new Float32Array(audioData.length);54  for (let i = 0; i < audioData.length; i++) {55    float32Array[i] = audioData[i] / 32768;56  }57 58  const transcription = await model.stt(float32Array);59  transcriptDiv.textContent += transcription + ' ';60  console.log('Transcription:', transcription);61  audioChunks = [];62}63 64// Event listeners65startButton.addEventListener('click', startRecording);66stopButton.addEventListener('click', stopRecording);67 68// Load the model when the page is loaded69window.addEventListener('load', loadModel);70