Mam dużo wykładowych treści wideo, do których chciałbym mieć napisy. YouTube automatycznie generuje napisy do filmów pod pewnymi warunkami (warunki te nadal są dla mnie nieco tajemnicą).
Chciałbym móc korzystać z tej technologii rozpoznawania mowy poza YouTube. Nie chcę przesyłać każdego filmu tylko po to, aby uzyskać zapis (zbyt czasochłonny), a ponadto, nie sądzę, że YouTube zrobi to w przypadku filmów dłuższych niż około 30 minut (większość z nich to), ponadto nie sądzę, że zrobi to w przypadku filmów niepublicznych (co stanowi problem, ponieważ są to treści premium, które mają zostać sprzedane).
Idealny scenariusz: istnieje program, który mogę uruchomić z pulpitu, aby pobrać transkrypcję z tych filmów i jest on równej lub lepszej jakości niż YouTube i ma kody czasowe podobne do SRT lub XML generowanego przez YouTube [ Jak pobierz napisy do YouTube ].
Dopuszczalny scenariusz: Istnieje kilka sztuczek, które mogę zrobić, aby zmusić YouTube do transkrypcji filmów, niezależnie od tego, czy są ustawione na prywatne czy publiczne i pomimo długości.
Wykonalny scenariusz: istnieje biblioteka lub coś, czego mogę użyć do kodowania własnego programu. Jestem dobry z C # i dobrze z C ++ (ale naprawdę wolę C #).
Odpowiedzi:
Google wdrożył interfejs API Web Speech (zarówno do rozpoznawania mowy, jak i syntezy) w Chrome, z którego możesz korzystać, jeśli jesteś programistą. Właśnie tego używa YouTube do generowania napisów w niektórych filmach. Może znajdziesz kod do interakcji z nim.
Przepływ danych prawdopodobnie będzie:
Plik wideo => wypakuj i przekonwertuj audio => wyślij go do Google API => pobierz tekst => napisz do SRT.
EDYCJA: wydaje się, że nie ma oficjalnej strony API innej niż specyfikacja W3C. Oto więcej linków:
Te przykłady dotyczą używania interfejsu API z Chrome, ale możesz bezpośrednio zapytać silnik rozpoznawania mowy online Google. Na przykład Jasper , osobisty asystent rozpoznający mowę dla Raspberrry Pi, pozwala wybrać Google jako silnik rozpoznawania mowy.
źródło
Istnieje narzędzie o nazwie „autosub” (patrz agermanidis / autosub na github), który robi to dokładnie, chociaż korzysta ze starszego API mowy Google. Narzędzie używa ffmpeg do rozebrania dźwięku do plików FLAC, a następnie wysyła pliki FLAC do Google w celu transkrypcji. Tworzy plik SRT lub VTT.
Dokładność jest częściowo niska ze względu na starszy interfejs API Google. Istnieje nowszy interfejs API („Interfejs API REST usługi Cloud Speech” na stronie https://cloud.google.com/speech/docs/apis ). Ten interfejs API jest dość prosty iw pewnym momencie zamierzałem rozwidlić autosub, aby go użyć.
Alternatywą jest przesłanie do YouTube i pobranie pliku VTT po zakończeniu podpisywania. Problem polega na tym, że YouTube tworzy bardzo szczegółowe napisy (np. Kilka słów) zamiast np. Zdania. Utrudnia to sprawdzenie podpisów podczas skanowania ręcznego.
źródło
Najłatwiej jest to zrobić: przejdź do dokumentów Google, otwórz nowy dokument tekstowy i wybierz z narzędzi „pisanie głosowe”, a następnie zagraj na taśmie. Tak. To jest takie proste! (i obsługuje wiele języków)
W przeciwnym razie możesz użyć lokalnej strony z HTML5 w następujący sposób: https://www.labnol.org/software/add-speech-recognition-to-website/19989/
źródło