Syncfusion vue speech to text
Skill syncfusion/vue-ui-components-skills/skills/syncfusion-vue-speech-to-text
Implement the Syncfusion Vue Speech-to-Text component. Instructions for integrating voice input, real-time transcription, language configuration, programmatic control, event handling, UI customization, browser compatibility, and security considerations for microphone-enabled applications.From its SKILL.md
npx -y skills add syncfusion/vue-ui-components-skills --skill syncfusion-vue-speech-to-textAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.0 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Syncfusion Vue Speech-to-Text Component
The Syncfusion Vue Speech-to-Text component converts spoken words into text using the browser's Speech Recognition API. This skill covers setup, configuration, event handling, customization, and security considerations for implementing real-time voice transcription in Vue 3 applications.
Browser Support & Requirements
The Speech-to-Text component requires:
- Browser Support: Chrome 25+, Edge 79+, Safari 12+, Opera 30+ (Firefox not supported)
- API Dependency: HTML5 Speech Recognition API
- Internet Connection: Required for speech processing
- User Permission: Microphone access consent
Documentation and Navigation Guide
Getting Started
π Read: references/getting-started.md
- Vue 3 project setup with Vite
- Package installation and configuration
- CSS theme imports
- Component registration
- Browser compatibility requirements
Speech Recognition & Configuration
π Read: references/speech-recognition.md
- Retrieving transcribed text with
transcriptproperty - Setting language with
langproperty - Managing real-time results with
allowInterimResults - Understanding listening states (Inactive, Listening, Stopped)
- Showing/hiding tooltips with
showTooltip - Disabling the component
- Error handling and troubleshooting
Methods & Programmatic Control
π Read: references/methods.md
- Starting speech recognition with
startListening() - Stopping recognition with
stopListening() - Programmatic control patterns and use cases
Events & Lifecycle
π Read: references/events.md
- Component initialization with
createdevent - Speech recognition lifecycle:
onStart,onStop - Error detection with
onErrorevent - Real-time transcription with
transcriptChangedevent - Event argument structures and practical examples
Appearance & Customization
π Read: references/appearance.md
- Customizing button text and content
- Button icon configuration and positioning
- Primary button styling
- Tooltip content and positioning
- CSS class styling (e-primary, e-outline, e-info, e-success, e-warning, e-danger)
- Custom styling examples
Globalization & Localization
π Read: references/globalization.md
- Localization with
L10n.load()method - Translation key identifiers and default values
- Language configuration with
localeproperty - Right-to-Left (RTL) support with
enableRtlproperty - Multi-language examples
Security Considerations
π Read: references/security.md
- Online dependency and offline fallback
- Data transmission security risks
- Privacy concerns with third-party servers
- Man-in-the-Middle (MITM) attack vectors
- Mitigation strategies and best practices
Quick Start
Basic Setup with Composition API:
<template>
<div id="container">
<ejs-speechtotext id="speechtotext" @transcript-changed="onTranscriptChange"></ejs-speechtotext>
<ejs-textarea v-model="textareaValue" rows="5" cols="50" resizeMode="None" placeholder="Transcribed text will be shown here..."></ejs-textarea>
</div>
</template>
<script setup>
import { ref } from "vue";
import { SpeechToTextComponent as EjsSpeechtotext, TextAreaComponent as EjsTextarea } from "@syncfusion/ej2-vue-inputs";
const textareaValue = ref('');
const onTranscriptChange = (args) => {
textareaValue.value = args.transcript;
};
</script>
<style>
@import "../node_modules/@syncfusion/ej2-material3-theme/styles/speech-to-text/index.css";
</style>
Common Patterns
Pattern 1: Real-Time vs Final Transcription
Display results as the user speaks (interim results) or wait for complete speech:
<!-- Real-time results (default, allowInterimResults=true) -->
<ejs-speechtotext @transcript-changed="onTranscriptChange"></ejs-speechtotext>
<!-- Final results only (allowInterimResults=false) -->
<ejs-speechtotext @transcript-changed="onTranscriptChange" :allow-interim-results="false"></ejs-speechtotext>
Pattern 2: Multi-Language Support
Set language for speech recognition:
<!-- English (US) -->
<ejs-speechtotext lang="en-US" @transcript-changed="onTranscriptChange"></ejs-speechtotext>
<!-- French -->
<ejs-speechtotext lang="fr-FR" @transcript-changed="onTranscriptChange"></ejs-speechtotext>
Pattern 3: Programmatic Control
Trigger speech recognition from buttons:
<template>
<div>
<button @click="startRecognition">Start Listening</button>
<button @click="stopRecognition">Stop Listening</button>
<ejs-speechtotext ref="speechToTextInstance"></ejs-speechtotext>
</div>
</template>
<script setup>
const speechToTextInstance = ref(null);
const startRecognition = () => {
speechToTextInstance.value.startListening();
};
const stopRecognition = () => {
speechToTextInstance.value.stopListening();
};
</script>
Pattern 4: Listening State Monitoring
Track component state changes:
<template>
<div>
<p>Status: {{ listeningState }}</p>
<ejs-speechtotext @start="(args) => listeningState = args.listeningState" @stop="(args) => listeningState = args.listeningState"></ejs-speechtotext>
</div>
</template>
<script setup>
const listeningState = ref('Inactive');
</script>
Pattern 5: Error Handling
Capture and respond to speech recognition errors:
<template>
<ejs-speechtotext @error="onError"></ejs-speechtotext>
</template>
<script setup>
const onError = (args) => {
console.error('Speech recognition error:', args);
};
</script>
What ships with it: 7 files
53.2 KB alongside SKILL.md
references/
- appearance.md7.3 KB
- events.md14.4 KB
- getting-started.md3.1 KB
- globalization.md7.2 KB
- methods.md3.2 KB
- security.md7.2 KB
- speech-recognition.md10.8 KB