音声認識の結果を取得する

リファレンス ドキュメントパッケージ (NuGet)GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

このコード スニペットは、Recognizing イベントからオフセットと経過時間を取得する方法を示しています。

speechRecognizer.Recognizing += (object sender, SpeechRecognitionEventArgs e) =>
    {
        if (e.Result.Reason == ResultReason.RecognizingSpeech)
        {        
            Console.WriteLine(String.Format ("RECOGNIZING: {0}", e.Result.Text));
            Console.WriteLine(String.Format ("Offset in Ticks: {0}", e.Result.OffsetInTicks));
            Console.WriteLine(String.Format ("Duration in Ticks: {0}", e.Result.Duration.Ticks));
        }
    };

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

speechConfig.RequestWordLevelTimestamps();

このコード スニペットは、Recognized イベントからオフセットと経過時間を取得する方法を示しています。

speechRecognizer.Recognized += (object sender, SpeechRecognitionEventArgs e) =>
    {
        if (ResultReason.RecognizedSpeech == e.Result.Reason && e.Result.Text.Length > 0)
        {            
            Console.WriteLine($"RECOGNIZED: Text={e.Result.Text}");
            Console.WriteLine(String.Format ("Offset in Ticks: {0}", e.Result.OffsetInTicks));
            Console.WriteLine(String.Format ("Duration in Ticks: {0}", e.Result.Duration.Ticks));
                        
            var detailedResults = e.Result.Best();
            if(detailedResults != null && detailedResults.Any())
            {
                // The first item in detailedResults corresponds to the recognized text.
                // This is not necessarily the item with the highest confidence number.
                var bestResults = detailedResults?.ToList()[0];
                Console.WriteLine(String.Format("\tConfidence: {0}\n\tText: {1}\n\tLexicalForm: {2}\n\tNormalizedForm: {3}\n\tMaskedNormalizedForm: {4}",
                    bestResults.Confidence, bestResults.Text, bestResults.LexicalForm, bestResults.NormalizedForm, bestResults.MaskedNormalizedForm));
                // You must set speechConfig.RequestWordLevelTimestamps() to get word-level timestamps.
                Console.WriteLine($"\tWord-level timing:");
                Console.WriteLine($"\t\tWord | Offset | Duration");
                Console.WriteLine($"\t\t----- | ----- | ----- ");

                foreach (var word in bestResults.Words)
                {
                    Console.WriteLine($"\t\t{word.Word} | {word.Offset} | {word.Duration}");
                }
            }
        }
    };

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンス ドキュメントパッケージ (NuGet)GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

このコード スニペットは、Recognizing イベントからオフセットと経過時間を取得する方法を示しています。

speechRecognizer->Recognizing.Connect([](const SpeechRecognitionEventArgs& e)
    {
        cout << "Recognizing:" << e.Result->Text << std::endl;
        cout << "Offset in Ticks:" << e.Result->Offset() << std::endl;
        cout << "Duration in Ticks:" << e.Result->Duration() << std::endl;
    });

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

speechConfig->RequestWordLevelTimestamps();

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンス ドキュメントパッケージ (Go)GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

このコード スニペットは、Recognizing イベントからオフセットと経過時間を取得する方法を示しています。

func recognizingHandler(event speech.SpeechRecognitionEventArgs) {
    defer event.Close()
    fmt.Println("Recognizing:", event.Result.Text)
    fmt.Println("Offset in Ticks:", event.Result.Offset)
    fmt.Println("Duration in Ticks:", event.Result.Duration)
}

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

speechConfig.RequestWordLevelTimestamps();

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンス ドキュメント | GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

このコード スニペットは、Recognizing イベントからオフセットと経過時間を取得する方法を示しています。

speechRecognizer.recognizing.addEventListener((s, e) -> {
    System.out.println("RECOGNIZING: " + e.getResult().getText());
    System.out.println("Offset in Ticks: " + e.getResult().getOffset());
    System.out.println("Duration in Ticks: " + e.getResult().getDuration());
});

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

speechConfig.requestWordLevelTimestamps();

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンスドキュメントパッケージ (npm)GitHub のその他のサンプルライブラリのソース コード

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

このコード スニペットは、Recognizing イベントからオフセットと経過時間を取得する方法を示しています。

speechRecognizer.recognizing = function (s, e) {
    console.log("RECOGNIZING: " + e.result.text);
    console.log("Offset in Ticks: " + e.result.offset);
    console.log("Duration in Ticks: " + e.result.duration);
};

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

speechConfig.requestWordLevelTimestamps();

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンス ドキュメントパッケージ (ダウンロード)GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

[speechConfig requestWordLevelTimestamps];

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンス ドキュメントパッケージ (ダウンロード)GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

[speechConfig requestWordLevelTimestamps];

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

リファレンス ドキュメントパッケージ (PyPi)GitHub のその他のサンプル

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

このコード スニペットは、Recognizing イベントからオフセットと経過時間を取得する方法を示しています。

def recognizing_handler(e : speechsdk.SpeechRecognitionEventArgs) :
    if speechsdk.ResultReason.RecognizingSpeech == e.result.reason and len(e.result.text) > 0 :
        print("Recognized: {}".format(result.text))
        print("Offset in Ticks: {}".format(result.offset))
        print("Duration in Ticks: {}".format(result.duration))

認識されたオフセットと経過時間

発話が認識されると、認識された音声のオフセットと経過時間を取得できます。 Recognized イベントでは、単語ごとのオフセットと経過時間も取得できます。 単語ごとのオフセットと経過時間を要求するには、まず、次に示すように対応する SpeechConfig プロパティを設定する必要があります。

speech_config.request_word_level_timestamps()

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

この攻略ガイドでは、音声認識の結果を使用する方法について説明します。

音声の同期

文字起こしは、リアルタイムと事前録音のどちらで行うかにかかわらず、オーディオ トラックと同期させることができます。

Speech Service から、認識された音声のオフセットと経過時間が返されます。

  • オフセット: 認識中のオーディオ ストリームへのオフセット。経過時間として表されます。 オフセットは、SDK によって処理される最初のオーディオ バイトに関連付けられた、0 (ゼロ) ティックから始まるティック数で測定されます。 たとえば、認識を開始するとオフセットが始まります。これは、このタイミングで SDK がオーディオ ストリームの処理を開始するためです。 1 ティックは 100 ナノ秒または 1,000 万分の 1 秒を表します。
  • 経過時間: 認識中の発話の経過時間。 ティック数での経過時間に、末尾と先頭の無音は含まれません。

1 つの発話の末尾は、末尾の無音を聞いて決定されます。 最終的な認識結果は、発話が完了するまで得られません。 オーディオ ストリームの処理中に、Recognizing イベントから変更される可能性がある中間結果が提供されます。 発話の処理が完了すると、Recognized イベントから最終的な書き起こしテキストが提供されます。

認識中のオフセットと経過時間

リアルタイムでも事前録音でも、キャプションとオーディオ トラックを同期させる必要があります。 Recognizing イベントでは、認識中の音声のオフセットと経過時間を取得できます。 認識が進行している間は、単語ごとのオフセットと経過時間を得られません。 各 Recognizing イベントには、これまでに認識された音声の推定テキストが含まれています。

たとえば、次のコマンドを実行すると、認識された音声のオフセットと経過時間を取得できます。

spx recognize --file caption.this.mp4 --format any --output each file - @output.each.detailed

@output.each.detailed 引数を設定したので、出力には次の列ヘッダーが含まれます。

audio.input.id  event   event.sessionid result.reason   result.latency  result.text     result.json

result.json 列には、Recognizing イベントと Recognized イベントのオフセットと経過時間を含む詳細が表示されます。

{
	"Id": "492574cd8555481a92c22f5ff757ef17",
	"RecognitionStatus": "Success",
	"DisplayText": "Welcome to applied Mathematics course 201.",
	"Offset": 1800000,
	"Duration": 30500000
}

詳細については、Speech CLI のデータ ストア構成出力オプションに関する記事を参照してください。

オフセットと経過時間の例

次の表は、話者が "応用数学コース 201 へようこそ" と話した場合の想定されるオフセットと経過時間をティック数で示しています。この例では、Recognizing および Recognized イベント全体を通して変わりません。 ただし、最終的な結果が異なる可能性があるため、Recognizing および Recognized イベント間でオフセットが変わらないことを当てにしないでください。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING ようこそ 17000000 5000000
RECOGNIZING welcome to 17000000 6400000
RECOGNIZING welcome to applied math 17000000 13600000
RECOGNIZING welcome to applied mathematics 17000000 17200000
RECOGNIZING welcome to applied mathematics course 17000000 23700000
RECOGNIZING welcome to applied mathematics course 2 17000000 26700000
RECOGNIZING welcome to applied mathematics course 201 17000000 33400000
RECOGNIZED Welcome to applied Mathematics course 201. 17000000 34500000

最初の発話の合計経過時間は 3.45 秒でした。 これは、認識されるオーディオ ストリームの開始から 1.7 秒 から 5.15 秒のオフセットで認識されました (00:00:01.700 --> 00:00:05.150)。

話者が続けて "始めましょう" と言った場合、認識されるオーディオ ストリームの開始から新しい発話の開始までの新しいオフセットが計算されます。 次の表は、前の発話が終了してから 2 秒後に開始された発話の想定されるオフセットと経過時間を示しています。

イベント Text オフセット (ティック数) 経過時間 (ティック数)
RECOGNIZING OK 71500000 3100000
RECOGNIZING OK now 71500000 10300000
RECOGNIZING OK, now let's 71500000 14700000
RECOGNIZING OK now let's get started 71500000 18500000
RECOGNIZED OK, now let's get started. 71500000 20600000

2 番目の発話の合計経過時間は 2.06 秒でした。 これは、認識されるオーディオ ストリームの開始から 7.15 秒 から 9.21 秒のオフセットで認識されました (00:00:07.150 --> 00:00:09.210)。

次のステップ