← Back to HTML5 APIs Chapter
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 hai
utterance.rateSpeed: 0.1 (bahut slow) to 10 (bahut fast), default 1
utterance.pitchPitch: 0 (deep) to 2 (high), default 1
utterance.langLanguage code — "en-IN" Indian English ke liye
getVoices()Available voices lo — kuch browsers mein bahut hain
speechSynthesis.speak()Utterance bolna shuru karo
speechSynthesis.cancel()Current speech turant band karo
SpeechRecognitionRecognition 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 bole
onresultSpeech detect hone pe — result.isFinal check karo
webkitSpeechRecognitionChrome 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.