
Speech to Text Conversion using React
This project allows users to convert spoken words into written text using their microphone and display the transcribed text in real-time on a web page built with React.
Key Features:
- Microphone access to record speech
- Real-time transcription of spoken words into text
- Start/Stop recording buttons
- Option to copy or save the transcribed text
Tech Stack:
- Frontend: React (JSX, Hooks, useState/useEffect)
- Browser API: Web Speech API (window.SpeechRecognition or webkitSpeechRecognition)
Optional:
- Tailwind CSS / Bootstrap for styling
- LocalStorage or backend (Node.js/Firebase) for saving notes
How it Works:
- User clicks "Start":
- The app triggers the Web Speech API's SpeechRecognition service.
- Microphone captures audio input.
- SpeechRecognition processes audio:
- Converts spoken words into text.
- Fires events like onresult to handle the transcribed text.
Transcribed text updates the state:
- React re-renders the component to show real-time text.
User clicks "Stop":
- SpeechRecognition stops listening.
- Final transcription is saved/displayed.
Code Snippet (Basic Hook Example):
import React, { useState } from 'react';
const SpeechToText = () => {
const [text, setText] = useState('');
const [listening, setListening] = useState(false);
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onresult = (event) => {
let transcript = '';
for (let i = event.resultIndex; i < event.results.length; i++) {
transcript += event.results[i][0].transcript;
}
setText(transcript);
};
const startListening = () => {
recognition.start();
setListening(true);
};
const stopListening = () => {
recognition.stop();
setListening(false);
};
return (
Speech to Text Converter
Start
Stop
{text}
);
};
export default SpeechToText;
Limitations:
- Not supported in all browsers (e.g., Firefox)
- May require HTTPS for mic permissions
- Accuracy can vary based on speech clarity
Possible Enhancements:
- Add language selection
- Export to PDF or TXT
- Voice commands integration
- Save past transcripts