API Types
🔊 Web Speech API — Browser Bolti Hai Aur Sunta Hai
speechSynthesis.speak(new SpeechSynthesisUtterance("Hello"))
Web Speech API ke do hisse hain: Speech Synthesis (browser text ko bolta hai — text-to-speech) aur Speech Recognition (browser tumhari awaaz sunta hai aur text mein convert karta hai — speech-to-text). Jaise browser mein narrator aur stenographer built-in hain.
Speech Synthesis: speechSynthesis.speak(new SpeechSynthesisUtterance("Hello")). Voice, rate, pitch, volume change kar sakte ho. Speech Recognition: new SpeechRecognition() — sunna shuru karo, onresult event mein results milte hain. Recognition sirf Chrome/Edge mein kaam karta hai (Firefox/Safari nahi).
Announcer + Stenographer: Speech Synthesis = Charminar pe announcer — tum text do, woh loudspeaker se bolta hai. Speech Recognition = stenographer — tum bolo, woh type karta hai. Dono browser mein built-in, koi API key nahi.
Code Example
HTML — Web Speech API — Browser Bolti Hai Aur Sunta Hai
<!-- Speech Synthesis: Browser bolta hai -->
<button onclick="speakText()">🔊 Bolo</button>
<input type="text" id="speakInput" value="Hello Hyderabad!" placeholder="Bolne ka text type karo">
<script>
function speakText() {
const text = document.getElementById("speakInput").value;
if (!text) return;
speechSynthesis.cancel();
const utterance = new SpeechSynthesisUtterance(text);
utterance.rate = 1;
utterance.pitch = 1;
utterance.volume = 1;
utterance.lang = "en-IN";
const voices = speechSynthesis.getVoices();
const indianVoice = voices.find(v => v.lang === "en-IN");
if (indianVoice) utterance.voice = indianVoice;
speechSynthesis.speak(utterance);
}
</script>
<!-- Speech Recognition: Browser sunta hai -->
<button onclick="startListening()">🎤 Sunna Shuru Karo</button>
<button onclick="stopListening()">⏹️ Ruko</button>
<p id="transcript"></p>
<script>
let recognition = null;
function startListening() {
const SpeechRecognition = window.SpeechRecognition
|| window.webkitSpeechRecognition;
if (!SpeechRecognition) {
document.getElementById("transcript").textContent =
"Speech recognition supported nahi. Chrome ya Edge use karo.";
return;
}
recognition = new SpeechRecognition();
recognition.lang = "hi-IN";
recognition.continuous = true;
recognition.interimResults = true;
recognition.onresult = (event) => {
let finalTranscript = "";
for (const result of event.results) {
if (result.isFinal) {
finalTranscript += result[0].transcript;
}
}
document.getElementById("transcript").textContent =
finalTranscript || "Sun raha hai...";
};
recognition.onerror = (event) => {
const errors = {
"no-speech": "Awaaz nahi mili. Dobara try karo.",
"audio-capture": "Microphone nahi mila.",
"not-allowed": "Microphone permission denied.",
};
document.getElementById("transcript").textContent =
errors[event.error] || `Error: ${event.error}`;
};
recognition.start();
}
function stopListening() {
if (recognition) recognition.stop();
}
</script>SpeechSynthesisUtteranceSpeech object — text + settings contain karta haiutterance.rateSpeed: 0.1 (bahut slow) to 10 (bahut fast), default 1utterance.pitchPitch: 0 (deep) to 2 (high), default 1utterance.langLanguage code — "en-IN" Indian English ke liyegetVoices()Available voices lo — kuch browsers mein bahut hainspeechSynthesis.speak()Utterance bolna shuru karospeechSynthesis.cancel()Current speech turant band karoSpeechRecognitionRecognition instance banao (sirf Chrome/Edge!)recognition.langKonsi language recognize karni hai — "en-IN", "hi-IN"recognition.continuousRuke nahi jab tak band na karo (vs ek phrase)recognition.interimResultsReal-time partial results dikhao jab user boleonresultSpeech detect hone pe — result.isFinal check karowebkitSpeechRecognitionChrome webkit prefix use karta hai — dono check karo✅ When to Use
- Visually impaired users ke liye screen reader alternative
- Web apps mein voice commands ("menu kholo", "biryani search karo")
- Pronunciation tools — suno word kaisa sunta hai
- Accessibility — page content aloud padhna
- Voice-to-text input fields
❌ When NOT to Use
- Jab accuracy critical ho (paid API use karo — Google Cloud Speech)
- Firefox/Safari mein recognition (sirf Chrome/Edge support karta hai)
- Long-form transcription ke liye (APIs zyada accurate hain)
- Bina user permission ke (hamesha pehle puchna)
Speech Recognition sirf Chrome/Edge mein kaam karta hai —
window.SpeechRecognition || window.webkitSpeechRecognition dono check karo. Voices asynchronously load hote hain — getVoices() ko voiceschanged event ke andar call karo. Indian English ke liye synthesis aur recognition dono mein lang "en-IN" use karo.