SpeechToText
API는 SpeechToText
음성을 텍스트로 변환하는 기능을 제공합니다.
다음에 필요한 SpeechToText
사전 조건은 다음과 같습니다.
에 사용 권한을 추가합니다.AndroidManifest.xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
구문
C#
SpeechToText
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);
}
}
또는 이벤트 사용:
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;
}
메서드
메서드 | 설명 |
---|---|
RequestPermissions | 사용 권한을 요청합니다. |
ListenAsync | 음성 인식을 시작합니다. |
StartListenAsync | SpeechToText 서비스를 시작합니다. (실시간 음성 인식 결과는 RecognitionResultUpdated 및 RecognitionResultCompleted를 통해 표시됨) |
StopListenAsync | SpeechToText 서비스를 중지합니다. (음성 인식 결과는 RecognitionResultCompleted를 통해 표시됩니다.) |
SpeechToTextResult
메서드에서 반환된 ListenAsync
결과입니다. 이는 인식이 성공했는지 여부를 확인하고 음성 인식 중에 발생할 수 있는 예외에 액세스하는 데 사용할 수 있습니다.
속성
속성 | Type | 설명 |
---|---|---|
Text | string |
인식된 텍스트입니다. |
예외 | Exception |
Exception 음성 인식 작업이 실패한 경우를 가져옵니다. |
IsSuccessful | bool |
작업이 성공했는지 여부를 결정하는 값을 가져옵니다. |
CurrentState | SpeechToTextState |
현재 수신 대기 상태를 가져옵니다. |
이벤트
EventName | Eventargs | 설명 |
---|---|---|
RecognitionResultUpdated | SpeechToTextRecognitionResultUpdatedEventArgs |
SpeechToText에 실시간 업데이트가 있을 때 트리거됩니다. |
RecognitionResultCompleted | SpeechToTextRecognitionResultCompletedEventArgs |
SpeechToText가 완료되면 트리거됩니다. |
StateChanged | SpeechToTextStateChangedEventArgs |
변경된 경우 CurrentState 트리거합니다. |
메서드
메서드 | 설명 |
---|---|
EnsureSuccess | 음성 텍스트 변환 작업이 성공했는지 여부를 확인합니다. |
Warning
EnsureSuccess
는 인식 작업이 실패한 경우 throw Exception
됩니다.
종속성 등록
서비스를 삽입하려는 경우 먼저 등록해야 합니다.
다음 변경 내용으로 업데이트 MauiProgram.cs
합니다.
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();
}
}
이제 다음과 같이 서비스를 삽입할 수 있습니다.
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);
}
}
예제
.NET MAUI 커뮤니티 도구 키트 샘플 애플리케이션에서 작동 중인 SpeechToText
예제를 찾을 수 있습니다.
API
.NET MAUI 커뮤니티 도구 키트 GitHub 리포지토리에서 오버에 대한 SpeechToText
소스 코드를 찾을 수 있습니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET MAUI Community Toolkit