SpeechToText
Interfejs SpeechToText
API umożliwia konwertowanie mowy na tekst.
Następujące warunki wstępne wymagane dla elementu SpeechToText
:
Dodaj uprawnienia do polecenia AndroidManifest.xml
:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
Składnia
C#
Można SpeechToText
go użyć w następujący sposób w języku C#:
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);
}
}
lub używając zdarzeń:
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 | opis |
---|---|
RequestPermissions | Pyta o uprawnienie. |
ListenAsync | Uruchamia rozpoznawanie mowy. |
StartListenAsync | Uruchamia usługę SpeechToText. (Wyniki rozpoznawania mowy w czasie rzeczywistym będą udostępniane za pośrednictwem funkcji RecognitionResultUpdated i RecognitionResultCompleted) |
StopListenAsync | Zatrzymuje usługę SpeechToText. (Wyniki rozpoznawania mowy będą udostępniane za pośrednictwem funkcji RecognitionResultCompleted) |
SpeechToTextResult
Wynik zwrócony z ListenAsync
metody . Może to służyć do sprawdzania, czy rozpoznawanie zakończyło się pomyślnie, a także uzyskać dostęp do wszelkich wyjątków, które mogły wystąpić podczas rozpoznawania mowy.
Właściwości
Właściwości | Type | Opis |
---|---|---|
Tekst | string |
Rozpoznany tekst. |
Wyjątek | Exception |
Pobiera wartość Exception , jeśli operacja rozpoznawania mowy nie powiodła się. |
IsSuccessful | bool |
Pobiera wartość określającą, czy operacja zakończyła się pomyślnie. |
CurrentState | SpeechToTextState |
Pobiera bieżący stan nasłuchiwania. |
Zdarzenia
EventName | Eventargs | opis |
---|---|---|
RecognitionResultUpdated | SpeechToTextRecognitionResultUpdatedEventArgs |
Wyzwala, gdy funkcja SpeechToText ma aktualizacje w czasie rzeczywistym. |
RecognitionResultCompleted | SpeechToTextRecognitionResultCompletedEventArgs |
Wyzwala wyzwalane po zakończeniu funkcji SpeechToText. |
Statechanged | SpeechToTextStateChangedEventArgs |
Wyzwalacze po CurrentState zmianie. |
Metody
Metoda | opis |
---|---|
EnsureSuccess | Sprawdza, czy operacja zamiany mowy na tekst zakończyła się pomyślnie. |
Ostrzeżenie
EnsureSuccess
wyrzuci błąd Exception
, jeśli operacja rozpoznawania nie powiodła się.
Rejestracja zależności
Jeśli chcesz wstrzyknąć usługę, najpierw musisz ją zarejestrować.
Zaktualizuj MauiProgram.cs
przy użyciu następnych zmian:
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();
}
}
Teraz możesz wstrzyknąć usługę w następujący sposób:
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);
}
}
Przykłady
Przykład działania SpeechToText
można znaleźć w przykładzie przykładowym zestawu narzędzi .NET MAUI Community Toolkit.
interfejs API
Kod źródłowy można SpeechToText
znaleźć w repozytorium GitHub zestawu narzędzi .NET MAUI Community Toolkit.
.NET MAUI Community Toolkit