次の方法で共有


TranslationRecognizer.RecognizeOnceAsync メソッド

定義

音声翻訳を非同期操作として開始します。

public System.Threading.Tasks.Task<Microsoft.CognitiveServices.Speech.Translation.TranslationRecognitionResult> RecognizeOnceAsync ();
member this.RecognizeOnceAsync : unit -> System.Threading.Tasks.Task<Microsoft.CognitiveServices.Speech.Translation.TranslationRecognitionResult>
Public Function RecognizeOnceAsync () As Task(Of TranslationRecognitionResult)

戻り値

認識操作を表すタスク。 タスクは の値を返します。 TranslationRecognitionResult

翻訳認識エンジンを作成し、認識結果を取得して印刷する

public async Task TranslationSingleShotRecognitionAsync()
{
    // Creates instance of a speech translation config with specified subscription key and region.
    // Replace with your own subscription key and service region (e.g., "westus").
    var config = SpeechTranslationConfig.FromSubscription("YourSubscriptionKey", "YourServiceRegion");

    string fromLanguage = "en-US";
    config.SpeechRecognitionLanguage = fromLanguage;
    config.AddTargetLanguage("de");

    // Creates a translation recognizer.
    using (var recognizer = new TranslationRecognizer(config))
    {
        // Starts recognizing.
        Console.WriteLine("Say something...");

        // Starts translation recognition, and returns after a single utterance is recognized. 
        // The end of a single utterance is determined by listening for silence at the end or
        // until a timeout period has elapsed. The task returns the
        // recognized text as well as the translation.
        // 
        // Note: Since RecognizeOnceAsync() returns only a single utterance, 
        // it is suitable only for single shot recognition, like a command or query.
        //
        // For long-running multi-utterance recognition, 
        // use StartContinuousRecognitionAsync() instead.

        var result = await recognizer.RecognizeOnceAsync();

        if (result.Reason == ResultReason.TranslatedSpeech)
        {
            Console.WriteLine($"\nFinal result: Reason: {result.Reason.ToString()}, recognized text: {result.Text}.");
            foreach (var element in result.Translations)
            {
                Console.WriteLine($"    TRANSLATING into '{element.Key}': {element.Value}");
            }
        }
    }
}

注釈

1 つの発話の終わりは、最後に無音をリッスンするか、タイムアウト期間が経過するまで待機することによって決定されます。 タスクは、**TranslationRecognitionResult.Text** で認識された音声の翻訳済みバージョンを返します。

**StopContinuousRecognitionAsync** を呼び出して、翻訳のためにフレーズが認識される前に認識を停止できます。

このメソッドは 1 つの発話のみを返すので、コマンドやクエリなどのシングル ショット認識にのみ適しています。 実行時間の長い複数発話認識の場合は、代わりに **StartContinuousRecognitionAsync** を使用します。

音声翻訳の概要」も参照してください。

適用対象