Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
syncfusion avatar

Syncfusion React Speech To Text

  • 390 installs
  • 3 repo stars
  • Updated July 28, 2026
  • syncfusion/react-ui-components-skills

syncfusion-react-speech-to-text is a Syncfusion Agent Skill that teaches developers to implement the React SpeechToText component for real-time voice transcription, microphone control, localization, and accessible form i

About

syncfusion-react-speech-to-text is a Syncfusion Agent Skill (version 33.1.44) for adding browser-based speech recognition to React apps via @syncfusion/ej2-react-inputs. The SKILL.md documents six reference guides on getting started, speech recognition features, button and tooltip customization, events and methods, globalization, and troubleshooting/security. Quick-start TSX wires SpeechToTextComponent transcriptChanged events to a TextAreaComponent for live voice notes. Patterns cover voice form inputs, programmatic startListening()/stopListening() via refs, and onError handling with human-readable errorMessage fields. Key props include lang, allowInterimResults, listeningState enum, and 12 TooltipPosition values. Developers reach for this skill when agents must generate correct Syncfusion speech components with microphone permission handling instead of generic Web Speech API snippets.

  • syncfusion-react-speech-to-text

Syncfusion React Speech To Text by the numbers

  • 390 all-time installs (skills.sh)
  • +22 installs in the week ending Jul 27, 2026 (Skillselion tracking)
  • Ranked #1,076 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-speech-to-text

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs390
repo stars3
Last updatedJuly 28, 2026
Repositorysyncfusion/react-ui-components-skills

How do you add voice input to a React form?

Use syncfusion-react-speech-to-text for development tasks

Who is it for?

React developers building voice-enabled forms or note-taking UIs with Syncfusion Essential Studio who need Web Speech API integration with proper event typing.

Skip if: Server-side transcription pipelines, mobile native speech SDKs, or projects not using Syncfusion React input components.

When should I use this skill?

The user asks to add Syncfusion speech-to-text, voice input buttons, microphone transcription, or accessible voice forms in React.

What you get

SpeechToTextComponent TSX with transcript handlers, tooltip config, ARIA attributes, and ref-based listening controls.

  • SpeechToTextComponent integration
  • Voice form input handlers
  • Error and permission recovery patterns

By the numbers

  • Targets Syncfusion SpeechToText version 33.1.44
  • Documents 6 reference guides and 12 TooltipPosition placement values

Files

SKILL.mdMarkdownGitHub ↗

Syncfusion React SpeechToText Component

Component Overview

The SpeechToText component enables users to convert spoken words into text using the Web Speech API. This skill helps you implement, customize, and troubleshoot speech recognition in React applications. The main component that captures audio from the user's microphone and converts speech to text in real-time using browser APIs.

Key Capabilities

  • Real-time speech recognition
  • Multiple language support
  • Customizable button and tooltip
  • Event-driven architecture
  • Programmatic control via methods
  • Accessibility support (ARIA labels, keyboard navigation)
  • Localization support
  • Error handling and recovery

Documentation

Getting Started

📄 Read: references/getting-started.md

  • Installation via npm
  • Package installation and setup
  • Basic component implementation
  • CSS imports and theme selection
  • First working example
  • TypeScript configuration
  • Disabling the component (disabled property)

Speech Recognition Features

📄 Read: references/speech-recognition-features.md

  • Retrieving transcripts in real-time
  • Setting language for recognition
  • Managing interim results
  • Listening state management with SpeechToTextState enum (Inactive, Listening, Stopped)
  • Reading listeningState from event args and component ref
  • Handling speech-to-text conversion
  • Real-time vs final results

Button and Tooltip Customization

📄 Read: references/button-and-tooltip-customization.md

  • Customizing button content and icons
  • Icon positioning and styling
  • Controlling tooltip visibility (showTooltip property)
  • Tooltip configuration and placement (all 12 TooltipPosition values)
  • CSS class styling (e-primary, e-success, etc.)
  • Button appearance modes
  • Responsive button design

Events and Methods

📄 Read: references/events-and-methods.md

  • Event handling (created, onStart, onStop, onError, transcriptChanged)
  • Correct event argument interfaces (StartListeningEventArgs, StopListeningEventArgs, ErrorEventArgs, TranscriptChangedEventArgs)
  • cancel property to prevent listening start
  • isInteracted to distinguish user vs programmatic triggers
  • errorMessage for human-readable error details
  • isInterimResult for interim vs final transcript results
  • startListening(), stopListening(), and destroy() methods
  • Ref-based component control
  • Programmatic listening management

Globalization and Localization

📄 Read: references/globalization-and-localization.md

  • Localization with L10n.load()
  • Available locale strings and translations
  • Language-specific error messages
  • RTL support for right-to-left languages
  • Accessibility labels and ARIA attributes
  • htmlAttributes for custom HTML/ARIA attributes on the button element
  • Multi-language interface support

Troubleshooting and Security

📄 Read: references/troubleshooting-and-security.md

  • Common issues and solutions
  • Browser compatibility matrix
  • Microphone permission handling
  • Security considerations and best practices
  • Privacy and data transmission
  • Performance optimization
  • Offline fallback strategies

Quick Start Example

import { SpeechToTextComponent, TextAreaComponent, TranscriptChangedEventArgs } from '@syncfusion/ej2-react-inputs';
import { useState } from 'react';
import '@syncfusion/ej2-react-inputs/styles/material.css';

function VoiceNoteApp() {
  const [transcript, setTranscript] = useState('');

  const handleTranscriptChanged = (args: TranscriptChangedEventArgs) => {
    setTranscript(args.transcript);
  };

  return (
    <div style={{ padding: '20px' }}>
      <h2>Voice Note Recorder</h2>
      
      {/* SpeechToText component with microphone button */}
      <SpeechToTextComponent 
        id="speechToText"
        transcriptChanged={handleTranscriptChanged}
      />
      
      {/* Display transcribed text */}
      <TextAreaComponent
        id="noteArea"
        value={transcript}
        resizeMode="None"
        rows={5}
        cols={50}
        placeholder="Your voice will appear here..."
      />
    </div>
  );
}

export default VoiceNoteApp;

Common Patterns

Pattern 1: Voice Form Input

import { SpeechToTextComponent, TextBoxComponent } from '@syncfusion/ej2-react-inputs';
import { useState } from 'react';

function VoiceForm() {
  const [formData, setFormData] = useState({
    name: '',
    message: ''
  });

  const handleNameTranscript = (args: any) => {
    setFormData(prev => ({ ...prev, name: args.transcript }));
  };

  const handleMessageTranscript = (args: any) => {
    setFormData(prev => ({ ...prev, message: args.transcript }));
  };

  return (
    <div>
      <label>Name (speak):</label>
      <SpeechToTextComponent transcriptChanged={handleNameTranscript} />
      <TextBoxComponent value={formData.name} />
      
      <label>Message (speak):</label>
      <SpeechToTextComponent transcriptChanged={handleMessageTranscript} />
      <TextBoxComponent value={formData.message} />
    </div>
  );
}

Pattern 2: Programmatic Control

import { SpeechToTextComponent } from '@syncfusion/ej2-react-inputs';
import { useRef } from 'react';

function VoiceControlApp() {
  const speechRef = useRef<SpeechToTextComponent>(null);

  const startVoiceInput = () => {
    speechRef.current?.startListening();
  };

  const stopVoiceInput = () => {
    speechRef.current?.stopListening();
  };

  return (
    <div>
      <SpeechToTextComponent ref={speechRef} />
      <button onClick={startVoiceInput}>Start Recording</button>
      <button onClick={stopVoiceInput}>Stop Recording</button>
    </div>
  );
}

Pattern 3: Error Handling

import { SpeechToTextComponent, ErrorEventArgs } from '@syncfusion/ej2-react-inputs';
import { useState } from 'react';

function VoiceWithErrorHandling() {
  const [error, setError] = useState('');
  const [isListening, setIsListening] = useState(false);

  const handleError = (args: ErrorEventArgs) => {
    // args.errorMessage is the human-readable description; args.error is the error code
    setError(args.errorMessage || `Error: ${args.error}`);
  };

  const handleStart = () => {
    setIsListening(true);
    setError('');
  };

  const handleStop = () => {
    setIsListening(false);
  };

  return (
    <div>
      <SpeechToTextComponent 
        onError={handleError}
        onStart={handleStart}
        onStop={handleStop}
      />
      {isListening && <p>🎤 Listening...</p>}
      {error && <p style={{ color: 'red' }}>{error}</p>}
    </div>
  );
}

Key Props

PropTypeDescription
langstringLanguage for speech recognition (e.g., 'en-US', 'fr-FR')
transcriptstringCurrent transcribed text
allowInterimResultsbooleanShow real-time results (default: true)
listeningStateSpeechToTextStateCurrent listening state (Inactive, Listening, Stopped)
buttonSettingsButtonSettingsModelCustomize button appearance and content
tooltipSettingsTooltipSettingsModelConfigure tooltip display
showTooltipbooleanWhether to display the tooltip on hover (default: true)
cssClassstringApply CSS classes for styling
disabledbooleanDisable all component interaction (default: false)
htmlAttributes{ [key: string]: string }Additional HTML attributes (ARIA, data-*, etc.) for the root button element
localestringLocalization language code
enableRtlbooleanEnable right-to-left layout
enablePersistencebooleanPersist component state between page reloads via localStorage

Event Handlers

EventArgsDescription
created-Fired when component is initialized
onStartStartListeningEventArgsFired when speech recognition begins. Args: cancel, event, isInteracted, listeningState, name
onStopStopListeningEventArgsFired when speech recognition ends. Args: event, isInteracted, listeningState, name
onErrorErrorEventArgsFired when an error occurs. Args: error, errorMessage, event, name
transcriptChangedTranscriptChangedEventArgsFired when transcription updates. Args: transcript, isInterimResult, event, name

Methods

MethodDescription
startListening()Begin speech recognition programmatically
stopListening()Stop speech recognition programmatically
destroy()Destroy the component instance and release all resources

Troubleshooting

Microphone permission denied

Solution: Check browser permissions settings and allow microphone access in security settings

Speech not recognized

Solution: Check microphone volume, speak clearly, verify correct language setting

Component not rendering

Solution: Ensure CSS imports are included and license key is registered

Browser not supported

Solution: Check if browser supports Web Speech API (Chrome, Edge, Safari support it)

Related Components

  • TextArea: For displaying transcribed text
  • TextBox: For input fields with voice capabilities
  • Button: For custom voice control buttons
  • Tooltip: For contextual help on voice features

Related skills

How it compares

Pick syncfusion-react-speech-to-text over raw Web Speech API guides when you need Syncfusion button styling, typed events, and localization for Essential Studio input components.

FAQ

Which events does syncfusion-react-speech-to-text document?

syncfusion-react-speech-to-text covers created, onStart, onStop, onError, and transcriptChanged handlers with typed args including cancel, isInteracted, listeningState, errorMessage, and isInterimResult for interim versus final transcripts.

How do you control listening programmatically?

syncfusion-react-speech-to-text uses a React ref on SpeechToTextComponent and calls startListening() or stopListening() methods. The destroy() method releases component resources when unmounting voice UI.

What browsers support syncfusion-react-speech-to-text?

syncfusion-react-speech-to-text relies on the Web Speech API supported in Chrome, Edge, and Safari. The troubleshooting reference covers microphone permission denials, missing CSS imports, and unsupported browser fallbacks.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.