speech-to-text

3.0.2 • Public • Published

Speech To Text

A speech recognition module to convert speech into text.

Install

npm install speech-to-text

Typical Usage

Here is the module being used in a React component

import React, { useState, useEffect } from 'react';
import SpeechToText from 'speech-to-text';

const MyComponent = () => {
  const [interimText, setInterimText] = useState('');
  const [finalisedText, setFinalisedText] = useState([]);
  const [listening, setListening] = useState(false);
  const [error, setError] = useState(null);
  const [listener, setListener] = useState(null);

  useEffect(() => {
    const onAnythingSaid = text => {
      setInterimText(text);
    };

    const onEndEvent = () => {
      if (listening) {
        listener?.startListening();
      }
    };

    const onFinalised = text => {
      setFinalisedText(prev => [text, ...prev]);
      setInterimText('');
    };

    try {
      const speechListener = new SpeechToText(onFinalised, onEndEvent, onAnythingSaid);
      setListener(speechListener);
    } catch (error) {
      setError(error.message);
    }

    // Cleanup function
    return () => {
      listener?.stopListening();
    };
  }, [listening, listener]);

  // Component JSX would go here...
}

API

The constructor

  • onFinalised - a callback that will be passed the finalised transcription from the cloud. Slow, but accuate.
  • onEndEvent - a callback that will be called when the end event is fired (speech recognition engine disconnects).
  • onAnythingSaid - (optional) a callback that will be passed interim transcriptions. Fairly immediate, but less accurate than finalised text.
  • language - (optional) the language to interpret against. Default is US English, and the supported languages are listed here.

The constructor will throw an error if speech recognition is not supported by the browser. Browser support includes Chrome, Edge, and Safari.

if (!('webkitSpeechRecognition' in window)) {
  throw new Error("This browser doesn't support speech recognition. Try Google Chrome.");
}

startListening

Initiates listening to speech input.

stopListening

Does just that. Stops listening.

License

MIT

Package Sidebar

Install

npm i speech-to-text

Weekly Downloads

472

Version

3.0.2

License

MIT

Unpacked Size

6.53 kB

Total Files

5

Last publish

Collaborators

  • magician11