syncfusion-blazor-speech-to-text — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-blazor-speech-to-text (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive guide for implementing voice input and speech recognition using the Syncfusion Blazor SpeechToText component. This component captures audio from the user's microphone and converts it to text in real time.
The SpeechToText component provides voice input capabilities by leveraging the browser's Speech Recognition API. It automatically handles microphone access, captures audio, transcribes speech, and manages the listening lifecycle.
Key Features:
📄 Read: references/getting-started.md
📄 Read: references/transcript-and-language.md
📄 Read: references/button-customization.md
📄 Read: references/tooltip-configuration.md
📄 Read: references/listening-states.md
📄 Read: references/interim-results-and-options.md
📄 Read: references/methods.md
📄 Read: references/error-handling.md
📄 Read: references/browser-support.md
Here's a minimal example to get started with SpeechToText:
@using Syncfusion.Blazor.Inputs
<div style="display: flex; flex-direction: column; gap: 20px; align-items: center; padding: 20px;">
<h3>Voice to Text Converter</h3>
<SfSpeechToText @bind-Transcript="@transcript"></SfSpeechToText>
<SfTextArea
RowCount="5"
ColumnCount="50"
@bind-Value="@transcript"
ResizeMode="Resize.None"
Placeholder="Transcribed text will appear here...">
</SfTextArea>
</div>
@code {
private string transcript = "";
}What this does:
transcript variableDisplay interim results as the user speaks (not just final results):
<SfSpeechToText
AllowInterimResults="true"
@bind-Transcript="@transcript">
</SfSpeechToText>
<p>@transcript</p>Allow users to switch between languages:
<select @onchange="@((ChangeEventArgs e) => selectedLanguage = e.Value.ToString())">
<option value="en-US">English</option>
<option value="fr-FR">French</option>
<option value="de-DE">German</option>
</select>
<SfSpeechToText
Language="@selectedLanguage"
@bind-Transcript="@transcript">
</SfSpeechToText>
@code {
private string selectedLanguage = "en-US";
private string transcript = "";
}Provide visual feedback based on listening state:
<SfSpeechToText
ListeningState="@listeningState"
SpeechRecognitionStarted="@OnListeningStarted"
SpeechRecognitionStopped="@OnListeningStopped">
</SfSpeechToText>
<div style="margin-top: 15px;">
@if (listeningState == SpeechToTextState.Listening)
{
<span style="color: green;">🎤 Listening...</span>
}
else if (listeningState == SpeechToTextState.Stopped)
{
<span style="color: orange;">⏸ Stopped</span>
}
else
{
<span style="color: gray;">○ Ready to listen</span>
}
</div>
@code {
private SpeechToTextState listeningState = SpeechToTextState.Inactive;
private void OnListeningStarted(SpeechRecognitionStartedEventArgs args)
{
listeningState = args.State;
}
private void OnListeningStopped(SpeechRecognitionStoppedEventArgs args)
{
listeningState = args.State;
}
}Gracefully handle errors and inform users:
<SfSpeechToText
SpeechRecognitionError="@OnSpeechError"
@bind-Transcript="@transcript">
</SfSpeechToText>
@if (!string.IsNullOrEmpty(errorMessage))
{
<div style="color: red; margin-top: 10px;">
⚠️ @errorMessage
</div>
}
@code {
private string transcript = "";
private string errorMessage = "";
private void OnSpeechError(SpeechRecognitionErrorEventArgs args)
{
errorMessage = args.Error switch
{
"no-speech" => "No speech detected. Please try again.",
"audio-capture" => "No microphone found. Check your device.",
"not-allowed" => "Microphone access denied. Check browser permissions.",
"network" => "Network error. Check your connection.",
_ => $"Error: {args.Error}"
};
}
}| Property | Type | Default | Purpose |
|---|---|---|---|
Transcript | string | "" | Two-way binding for transcribed text |
Language | string | "en-US" | Language code for speech recognition |
ListeningState | SpeechToTextState | Inactive | Current state (Inactive, Listening, Stopped) |
AllowInterimResults | bool | true | Show interim results while speaking |
ShowTooltip | bool | true | Display tooltip on hover |
Disabled | bool | false | Disable the component |
HtmlAttributes | Dictionary | - | Custom HTML attributes for button |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.