@raghavendra_kj/stt-js v1.0.7
Speech-to-Text (STT) Library
Live Demo
You can view a live demo of the example here.
Introduction
The Speech-to-Text (STT) library provides a clean interface for integrating browser-based speech recognition into your web applications using the Web Speech API. It supports real-time transcription, interim results, and continuous listening.
Installation
npm install @raghavendra_kj/stt-jsUsage
Import the Library
import { STT } from "@raghavendra_kj/stt-js";Create an Instance
const stt = new STT();Start Recognition
await stt.start();You can also pass options:
await stt.start({
lang: "en-IN",
continuous: false,
interimResults: false
});Stop or Abort Recognition
stt.stop(); // Gracefully ends recognition
stt.abort(); // Forcibly ends recognitionAdd Event Listeners
stt.onResult((text) => {
console.log("Final result:", text);
});
stt.onPartialResult((text) => {
console.log("Interim result:", text);
});
stt.onError((error) => {
console.error("Error occurred:", error);
});Remove Event Listeners
stt.offResult(handler); // Remove a specific listener
stt.removeAllListeners(); // Remove all listenersAPI Reference
STT.start(options?)
Starts speech recognition.
Parameters:
lang(string): Language code (default:"en-US")continuous(boolean): If recognition should continue after pauses (default:true)interimResults(boolean): Whether to include interim results (default:true)
Returns: Promise<void>
STT.stop()
Stops the recognition session gracefully.
STT.abort()
Forcibly aborts the recognition session.
STT.isRecognizing()
Returns a boolean indicating whether recognition is currently active.
STT.dispose()
Stops recognition and removes all listeners. Use for cleanup.
Event Listeners
Add Listeners
stt.onStart(handler: () => void): Triggered when recognition starts.stt.onEnd(handler: () => void): Triggered when recognition ends.stt.onResult(handler: (text: string) => void): Triggered when a final transcript is available.stt.onPartialResult(handler: (text: string) => void): Triggered for interim transcript updates.stt.onError(handler: (error: STTError) => void): Triggered when an error occurs.
Remove Listeners
stt.offStart(handler: () => void): Removes a specific "start" listener.stt.offEnd(handler: () => void): Removes a specific "end" listener.stt.offResult(handler: (text: string) => void): Removes a specific "result" listener.stt.offPartialResult(handler: (text: string) => void): Removes a specific "partialResult" listener.stt.offError(handler: (error: STTError) => void): Removes a specific "error" listener.stt.removeAllListeners(event?): Removes all listeners for a specific event or all events.
Permissions
If supported, the library uses the Permissions API to check for microphone access.
Errors are reported through the "error" events.
Browser Support
Ensure the target browser supports the Web Speech API (e.g., latest versions of Chrome, Edge).
Example
A complete working example is available in example/index.html.