Loading...
Loading...
Implement the Syncfusion React SpeechToText component. Use this skill to convert speech to text, manage microphone input, control listening states, process speech events, customize UI, support accessible voice-enabled forms, and handle globalization and security in React applications.
npx skill4agent add syncfusion/react-ui-components-skills syncfusion-react-speech-to-textdisabledSpeechToTextStatelisteningStateshowTooltipTooltipPositioncancelisInteractederrorMessageisInterimResulthtmlAttributesimport { 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;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>
);
}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>
);
}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>
);
}| Prop | Type | Description |
|---|---|---|
| string | Language for speech recognition (e.g., 'en-US', 'fr-FR') |
| string | Current transcribed text |
| boolean | Show real-time results (default: true) |
| SpeechToTextState | Current listening state (Inactive, Listening, Stopped) |
| ButtonSettingsModel | Customize button appearance and content |
| TooltipSettingsModel | Configure tooltip display |
| boolean | Whether to display the tooltip on hover (default: true) |
| string | Apply CSS classes for styling |
| boolean | Disable all component interaction (default: false) |
| { [key: string]: string } | Additional HTML attributes (ARIA, data-*, etc.) for the root button element |
| string | Localization language code |
| boolean | Enable right-to-left layout |
| boolean | Persist component state between page reloads via localStorage |
| Event | Args | Description |
|---|---|---|
| - | Fired when component is initialized |
| StartListeningEventArgs | Fired when speech recognition begins. Args: |
| StopListeningEventArgs | Fired when speech recognition ends. Args: |
| ErrorEventArgs | Fired when an error occurs. Args: |
| TranscriptChangedEventArgs | Fired when transcription updates. Args: |
| Method | Description |
|---|---|
| Begin speech recognition programmatically |
| Stop speech recognition programmatically |
| Destroy the component instance and release all resources |