Podpisy z mową na tekst

Z tego przewodnika dowiesz się, jak utworzyć podpis z zamianą mowy na tekst. Podpisy to proces konwertowania zawartości audio transmisji telewizyjnej, audycji internetowej, filmu, wideo, wydarzenia na żywo lub innej produkcji na tekst, a następnie wyświetlania tekstu na ekranie, monitorze lub innym systemie wyświetlania wizualizacji.

Pojęcia obejmują sposób synchronizowania podpis z dźwiękiem wejściowym, stosowania filtrów wulgaryzmów, pobierania wyników częściowych, stosowania dostosowań i identyfikowania języków mówionych w scenariuszach wielojęzycznych. W tym przewodniku omówiono podpis mowy, ale nie zawiera identyfikatora osoby mówiącej ani efektów dźwiękowych, takich jak dzwonki dzwoniące.

Poniżej przedstawiono kilka typowych scenariuszy podpis:

  • Kursy online i filmy instruktażowe
  • Wydarzenia sportowe
  • Połączenia głosowe i wideo

Poniżej przedstawiono aspekty, które należy wziąć pod uwagę podczas korzystania z podpis:

  • Poinformuj odbiorców, że podpis są generowane przez zautomatyzowaną usługę.
  • Wyśrodkowanie podpis poziomo na ekranie, w dużej i widocznej czcionki.
  • Zastanów się, czy należy użyć częściowych wyników, kiedy rozpocząć wyświetlanie podpis i ile słów ma być wyświetlanych naraz.
  • Dowiedz się więcej o protokołach podpis, takich jak SMPTE-TT.
  • Rozważ formaty danych wyjściowych, takie jak SRT (SubRip Text) i WebVTT (Web Video Text Track). Można je załadować do większości odtwarzaczy wideo, takich jak VLC, automatycznie dodając podpis do wideo.

Napiwek

Wypróbuj program Speech Studio i wybierz przykładowy klip wideo, aby zobaczyć wyniki przetwarzane w czasie rzeczywistym lub offline podpis.

Wypróbuj usługę Azure AI Video Indexer, aby pokazać, jak można uzyskać podpis dla przekazanych filmów wideo.

Podpisy mogą towarzyszyć w czasie rzeczywistym lub wstępnie rozpoznanej mowy. Niezależnie od tego, czy wyświetlasz podpis w czasie rzeczywistym, czy z nagraniem, możesz użyć zestawu SPEECH SDK lub interfejsu wiersza polecenia usługi Mowa, aby rozpoznać mowę i uzyskać transkrypcje. Możesz również użyć interfejsu API transkrypcji usługi Batch do wstępnie nagranego wideo.

Format danych wyjściowych podpisów

Usługa mowa obsługuje formaty wyjściowe, takie jak SRT (SubRip Text) i WebVTT (Web Video Text Track). Można je załadować do większości odtwarzaczy wideo, takich jak VLC, automatycznie dodając podpis do wideo.

Napiwek

Usługa Mowa udostępnia opcje filtru wulgaryzmów . Możesz określić, czy chcesz maskować, usuwać lub pokazywać wulgaryzmy.

Format danych wyjściowych przedziału czasu SRT (SubRip Text) to hh:mm:ss,fff.

1
00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.

Format danych wyjściowych przedziału czasu webVTT (Web Video Text Track) to hh:mm:ss.fff.

WEBVTT

00:00:00.180 --> 00:00:03.230
Welcome to applied Mathematics course 201.
{
  "ResultId": "8e89437b4b9349088a933f8db4ccc263",
  "Duration": "00:00:03.0500000"
}

Wprowadzanie dźwięku do usługi Mowa

W przypadku podpis w czasie rzeczywistym należy użyć mikrofonu lub strumienia wejściowego audio zamiast danych wejściowych pliku. Aby zapoznać się z przykładami rozpoznawania mowy z mikrofonu, zobacz przewodnik Szybki start Zamiana mowy na tekst i Jak rozpoznawać mowę . Aby uzyskać więcej informacji na temat przesyłania strumieniowego, zobacz How to use the audio input stream (Jak używać strumienia wejściowego audio).

W przypadku podpis wstępnierecordowania wyślij dane wejściowe pliku do usługi Rozpoznawanie mowy. Aby uzyskać więcej informacji, zobacz Jak używać skompresowanego dźwięku wejściowego.

Synchronizacja podpisów i mowy

Chcesz zsynchronizować podpis ze ścieżką dźwiękową, niezależnie od tego, czy jest ona w czasie rzeczywistym, czy z prerecordowaniem.

Usługa rozpoznawania mowy zwraca przesunięcie i czas trwania rozpoznanej mowy.

  • Przesunięcie: przesunięcie do rozpoznawanego strumienia audio, wyrażone jako czas trwania. Przesunięcie jest mierzone w kleszczach, począwszy od 0 (zero) znacznika skojarzonego z pierwszym bajtem audio przetworzonym przez zestaw SDK. Na przykład przesunięcie rozpoczyna się po rozpoczęciu rozpoznawania, ponieważ zestaw SDK rozpoczyna przetwarzanie strumienia audio. Jeden kleszcz reprezentuje sto nanosekund lub dziesiątą milionową sekundy.
  • Czas trwania: czas trwania rozpoznawanej wypowiedzi. Czas trwania w kleszczach nie obejmuje końcowej ani wiodącej ciszy.

Aby uzyskać więcej informacji, zobacz Pobieranie wyników rozpoznawania mowy.

Pobieranie wyników częściowych

Zastanów się, kiedy zacząć wyświetlać podpis oraz liczbę wyrazów do wyświetlenia naraz. Wyniki rozpoznawania mowy mogą ulec zmianie, gdy wypowiedź jest nadal rozpoznawana. Częściowe wyniki są zwracane z każdym Recognizing zdarzeniem. Podczas przetwarzania każdego słowa usługa rozpoznawania mowy ponownie ocenia wypowiedź w nowym kontekście i ponownie zwraca najlepszy wynik. Nowy wynik nie ma gwarancji, że będzie taki sam jak poprzedni wynik. Kompletna i ostateczna transkrypcja wypowiedzi jest zwracana ze zdarzeniem Recognized .

Uwaga

Interpunkcja częściowych wyników jest niedostępna.

Aby podpis wstępnie rozpoznaną mowę lub gdziekolwiek opóźnienie nie jest problemem, można poczekać na pełną transkrypcję każdej wypowiedzi przed wyświetleniem dowolnych wyrazów. Biorąc pod uwagę końcowe przesunięcie i czas trwania każdego słowa w wypowiedzi, wiesz, kiedy pokazać kolejne słowa w tempie ścieżki dźwiękowej.

Podpis w czasie rzeczywistym przedstawia kompromisy w odniesieniu do opóźnień i dokładności. Tekst z każdego Recognizing zdarzenia można wyświetlić tak szybko, jak to możliwe. Jeśli jednak możesz zaakceptować pewne opóźnienie, możesz poprawić dokładność podpis, wyświetlając tekst ze Recognized zdarzenia. Istnieje również część środkowa, która jest nazywana "stabilnymi wynikami częściowym".

Możesz zażądać, aby usługa rozpoznawania mowy zwróciła mniej Recognizing zdarzeń, które są dokładniejsze. Można to zrobić, ustawiając SpeechServiceResponse_StablePartialResultThreshold właściwość na wartość między 0 i 2147483647. Ustawiona wartość to liczba razy, gdy słowo musi zostać rozpoznane, zanim usługa rozpoznawania Recognizing mowy zwróci zdarzenie. Jeśli na przykład ustawisz SpeechServiceResponse_StablePartialResultThreshold wartość właściwości na 5, usługa rozpoznawania mowy potwierdzi rozpoznawanie wyrazu co najmniej pięć razy przed zwróceniem częściowych wyników z zdarzeniem Recognizing .

speechConfig.SetProperty(PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig->SetProperty(PropertyId::SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig.SetProperty(common.SpeechServiceResponseStablePartialResultThreshold, 5)
speechConfig.setProperty(PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig.setProperty(sdk.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
[self.speechConfig setPropertyTo:5 byId:SPXSpeechServiceResponseStablePartialResultThreshold];
self.speechConfig!.setPropertyTo(5, by: SPXPropertyId.speechServiceResponseStablePartialResultThreshold)
speech_config.set_property(property_id = speechsdk.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, value = 5)
spx recognize --file caption.this.mp4 --format any --property SpeechServiceResponse_StablePartialResultThreshold=5 --output vtt file - --output srt file -

Żądanie bardziej stabilnych wyników częściowych zmniejsza "migotanie" lub zmienianie tekstu, ale może zwiększyć opóźnienie podczas oczekiwania na wyższe wyniki ufności.

Przykład stabilnego progu częściowego

W następującej sekwencji rozpoznawania bez ustawiania stabilnego progu częściowego "matematyka" jest rozpoznawana jako słowo, ale ostateczny tekst to "matematyka". W innym momencie "kurs 2" jest rozpoznawany, ale ostateczny tekst to "kurs 201".

RECOGNIZING: Text=welcome to
RECOGNIZING: Text=welcome to applied math
RECOGNIZING: Text=welcome to applied mathematics
RECOGNIZING: Text=welcome to applied mathematics course 2
RECOGNIZING: Text=welcome to applied mathematics course 201
RECOGNIZED: Text=Welcome to applied Mathematics course 201.

W poprzednim przykładzie transkrypcje były addytywne i żaden tekst nie został wycofany. Ale w innych przypadkach może się okazać, że częściowe wyniki były niedokładne. W obu przypadkach niestabilne częściowe wyniki mogą być postrzegane jako "migotanie" po wyświetleniu.

W tym przykładzie, jeśli ustawiono 5stabilny próg wyniku częściowego na wartość , żadne wyrazy nie są zmieniane ani cofane.

RECOGNIZING: Text=welcome to
RECOGNIZING: Text=welcome to applied
RECOGNIZING: Text=welcome to applied mathematics
RECOGNIZED: Text=Welcome to applied Mathematics course 201.

Identyfikacja języka

Jeśli język dźwięku może ulec zmianie, użyj ciągłej identyfikacji języka. Identyfikacja języka służy do identyfikowania języków mówionych w dźwiękach w porównaniu z listą obsługiwanych języków. Należy podać maksymalnie 10 języków kandydatów, z których co najmniej jeden jest oczekiwany w dźwięku. Usługa rozpoznawania mowy zwraca najbardziej prawdopodobny język w dźwięku.

Dostosowania w celu zwiększenia dokładności

Lista fraz to lista wyrazów lub fraz, które podajesz bezpośrednio przed rozpoczęciem rozpoznawania mowy. Dodanie frazy do listy fraz zwiększa jego znaczenie, co zwiększa prawdopodobieństwo rozpoznania.

Przykłady fraz to:

  • Nazwy
  • Lokalizacje geograficzne
  • Homonimy
  • Słowa lub akronimy unikatowe dla twojej branży lub organizacji

Istnieją sytuacje, w których trenowanie modelu niestandardowego jest prawdopodobnie najlepszą opcją poprawy dokładności. Jeśli na przykład podpis wykłady ortodontyczne, możesz wytrenować model niestandardowy przy użyciu odpowiednich danych domeny.

Następne kroki