Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozhraní SpeechToText API poskytuje možnost převést řeč na text.

Následující předpoklady vyžadované pro SpeechToText:
Přidat oprávnění k AndroidManifest.xml:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Syntaxe
C#
V SpeechToText jazyce C# je možné ho použít následujícím způsobem:
async Task Listen(CancellationToken cancellationToken)
{
var isGranted = await speechToText.RequestPermissions(cancellationToken);
if (!isGranted)
{
await Toast.Make("Permission not granted").Show(CancellationToken.None);
return;
}
var recognitionResult = await speechToText.ListenAsync(
CultureInfo.GetCultureInfo(Language),
new Progress<string>(partialText =>
{
RecognitionText += partialText + " ";
}), cancellationToken);
if (recognitionResult.IsSuccessful)
{
RecognitionText = recognitionResult.Text;
}
else
{
await Toast.Make(recognitionResult.Exception?.Message ?? "Unable to recognize speech").Show(CancellationToken.None);
}
}
nebo pomocí událostí:
async Task StartListening(CancellationToken cancellationToken)
{
var isGranted = await speechToText.RequestPermissions(cancellationToken);
if (!isGranted)
{
await Toast.Make("Permission not granted").Show(CancellationToken.None);
return;
}
speechToText.RecognitionResultUpdated += OnRecognitionTextUpdated;
speechToText.RecognitionResultCompleted += OnRecognitionTextCompleted;
await speechToText.StartListenAsync(CultureInfo.CurrentCulture, CancellationToken.None);
}
async Task StopListening(CancellationToken cancellationToken)
{
await speechToText.StopListenAsync(CancellationToken.None);
speechToText.RecognitionResultUpdated -= OnRecognitionTextUpdated;
speechToText.RecognitionResultCompleted -= OnRecognitionTextCompleted;
}
void OnRecognitionTextUpdated(object? sender, SpeechToTextRecognitionResultUpdatedEventArgs args)
{
RecognitionText += args.RecognitionResult;
}
void OnRecognitionTextCompleted(object? sender, SpeechToTextRecognitionResultCompletedEventArgs args)
{
RecognitionText = args.RecognitionResult;
}
Metody
| metoda | Popis |
|---|---|
| RequestPermissions | Žádá o oprávnění. |
| ListenAsync | Spustí rozpoznávání řeči. |
| StartListenAsync | Spustí službu SpeechToText. (Výsledky rozpoznávání řeči v reálném čase se zobrazí prostřednictvím RecognitionResultUpdated a RecognitionResultCompleted) |
| StopListenAsync | Zastaví službu SpeechToText. (Výsledky rozpoznávání řeči se zobrazí přes RecognitionResultCompleted) |
SpeechToTextResult
Výsledek vrácený z ListenAsync metody. To se dá použít k ověření, jestli bylo rozpoznávání úspěšné, a také přistupovat k jakýmkoli výjimkám, ke kterým mohlo dojít během rozpoznávání řeči.
Vlastnosti
| Vlastnost | Type | Popis |
|---|---|---|
| Text | string |
Rozpoznaný text. |
| Výjimka | Exception |
Exception Získá, pokud operace rozpoznávání řeči selhala. |
| IsSuccessful | bool |
Získá hodnotu určující, zda operace byla úspěšná. |
| Aktuální stav | SpeechToTextState |
Získá aktuální stav naslouchání. |
Události
| EventName | Eventargs | Popis |
|---|---|---|
| RecognitionResultUpdated | SpeechToTextRecognitionResultUpdatedEventArgs |
Aktivuje se, když má SpeechToText aktualizace v reálném čase. |
| RecognitionResultCompleted | SpeechToTextRecognitionResultCompletedEventArgs |
Aktivuje se po dokončení funkce SpeechToText. |
| StateChanged | SpeechToTextStateChangedEventArgs |
Aktivační události, kdy došlo ke CurrentState změně. |
Metody
| metoda | Popis |
|---|---|
| Zajistit, aby se zajistilo, že se vám to bude chytět. | Ověřuje, jestli byla operace převodu řeči na text úspěšná. |
Upozorňující
EnsureSuccessException vyvolá chybu, pokud operace rozpoznávání nebyla úspěšná.
Registrace závislostí
V případě, že chcete vložit službu, musíte ji nejprve zaregistrovat.
Aktualizujte MauiProgram.cs následujícími změnami:
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiCommunityToolkit();
builder.Services.AddSingleton<ISpeechToText>(SpeechToText.Default);
return builder.Build();
}
}
Teď můžete službu vložit takto:
public partial class MainPage : ContentPage
{
private readonly ISpeechToText speechToText;
public MainPage(ISpeechToText speechToText)
{
InitializeComponent();
this.speechToText = speechToText;
}
public async void Listen(object sender, EventArgs args)
{
var isGranted = await speechToText.RequestPermissions(cancellationToken);
if (!isGranted)
{
await Toast.Make("Permission not granted").Show(CancellationToken.None);
return;
}
var recognitionResult = await speechToText.ListenAsync(
CultureInfo.GetCultureInfo("uk-ua"),
new Progress<string>(), cancellationToken);
recognitionResult.EnsureSuccess();
await Toast.Make($"RecognizedText: {recognitionResult.Text}").Show(cancellationToken);
}
}
Příklady
Příklad SpeechToText akce najdete v ukázkové aplikaci .NET MAUI Community Toolkit.
rozhraní API
Zdrojový kód SpeechToText najdete v úložišti .NET MAUI Community Toolkit na GitHubu.
.NET MAUI Community Toolkit