voice-input
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

voice-input

voice-input allows you to easily add functionality to your website that enables voice input to the currently focused text area using shortcuts or buttons.

Install

npm install voice-input

Usage

<!doctype html>
<html lang="ja">
  <head>
    <meta charset="utf-8" />
    <title>voice-input example</title>
    <style>
      [data-voice-input]::after {
        content: ' on';
      }
      [data-voice-input='recording']::after {
        content: ' off';
      }
    </style>
  </head>
  <body>
    <p>
      <button data-voice-input>mic</button>
    </p>
    <div>
      <textarea>textarea</textarea>
    </div>
    <div>
      <div contenteditable>contenteditable</div>
    </div>
    <script type="module">
      import { setup } from 'voice-input';
      setup();
    </script>
  </body>
</html>

This will set up the voice input feature and you will be able to use voice input in the text area by pressing the mic button or entering the Alt+v shortcut key.

API

function setup(options: {
  // Supported language.
  lang?: string; // = navigator.language
  // Text insert callback.
  insertText?: (text: string) => boolean;
  // Enable interim text insertion.
  insertInterimTextMode?: boolean; // = false
  // Spectfying an attribute to update when change voice input state.
  stateAttribute?: string; // = 'data-voice-input',
  // Enable speech modal.
  composeModal?:
    | {
        className?: string;
        style?: Partial<CSSStyleDeclaration>;
      }
    | boolean; // = true
  // Specifying a keyboard shortcuts. Disable with empty string.
  // Uppercase letter requires shift key (ex. Alt+V = Alt+Shift+v).
  keyboardShortcut?: string; // = 'Alt+v'
  // Activate when pressing the key.
  keyboardShortcutLongPressMode?: boolean; // = false
  // Specifying a keyboard shortcut to confirm input. Disable with empty string.
  confirmKeyboarShortcut?: string; // = ''
  // Spectfying a button attribute to toggle voice input.
  toggleButtonAttribute?: string; // = 'data-voice-input',
  // Spectfying a button attribute to focus a text area.
  toggleButtonFocusAttribute?: string; // = 'data-voice-input-focus',
  // Plugin. For specific usage, please refer to src/VoiceInput.ts.
  plugins?: {
    dispose?: () => void;
    onUpdate?: (transcript: string) => void;
    onFinish?: () => void;
    onStateChange?: (state: { recording: boolean }) => void;
  }[];
}): void;

Readme

Keywords

none

Package Sidebar

Install

npm i voice-input

Weekly Downloads

46

Version

2.0.3

License

MIT

Unpacked Size

141 kB

Total Files

18

Last publish

Collaborators

  • ofk