Udostępnij za pośrednictwem


Podpisy z mową na tekst

Z tego przewodnika dowiesz się, jak tworzyć podpisy z mową 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ów z wejściowym dźwiękiem, stosowania filtrów wulgaryzmów, pobierania częściowych wyników, stosowania dostosowań i identyfikowania języków mówionych w scenariuszach wielojęzycznych. Ten przewodnik obejmuje transkrypcję mowy, ale nie zawiera identyfikatora osoby mówiącej ani efektów dźwiękowych, takich jak dzwonki dzwoniące.

Oto kilka typowych scenariuszy podpisów:

  • 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ów:

  • Poinformuj odbiorców, że podpisy są generowane przez zautomatyzowaną usługę.
  • Wyśrodkuj podpisy poziomo na ekranie, w dużej i widocznej czcionki.
  • Zastanów się, czy używać częściowych wyników, kiedy zacząć wyświetlać napisy i ile słów ma być wyświetlanych naraz.
  • Dowiedz się więcej o protokołach podpisów, 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 napisy do wideo.

Napiwek

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

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

Podpisy mogą towarzyszyć w czasie rzeczywistym lub wstępnie rozpoznanej mowy. Niezależnie od tego, czy wyświetlasz napisy w czasie rzeczywistym, czy z nagraniem, możesz użyć zestawu SDK usługi Mowa lub interfejsu wiersza polecenia usługi Mowa, aby rozpoznawać mowę i uzyskiwać 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 napisy 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 transkrygowania w czasie rzeczywistym należy użyć mikrofonu lub strumienia wejściowego dźwięku 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).

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

Synchronizacja podpisów i mowy

Chcesz zsynchronizować podpisy 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ć napisy i ile słów ma być wyświetlanych 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.

W przypadku transkrypcji wstępnie rozpoznanej mowy lub dowolnego miejsca, w którym opóźnienie nie jest problemem, możesz poczekać na pełną transkrypcję każdej wypowiedzi przed wyświetleniem jakichkolwiek słó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.

Podpisy w czasie rzeczywistym przedstawiają 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ść podpisu, wyświetlając tekst zdarzenia Recognized . 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 podpisujesz wykłady ortodontyczne, możesz wytrenować model niestandardowy przy użyciu odpowiednich danych domeny.

Następne kroki