SpeechToText
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í
EnsureSuccess
Exception
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