Jak korzystać z Google rozpoznawania mowy YouTube bez przesyłania filmów do YouTube?


15

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 #).


2
dzięki za link do góry - z głuchej perspektywy, bardzo zainteresowany usłyszeniem, jak to działa ...
studiohack

@studiohack nie gra słów.
287352

LOL, nawet nie zdawałem sobie z tego sprawy! : P
studiohack

Odpowiedzi:


10

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.


Dziękuję Ci! Na pewno to wypróbuję. Jeśli można to zrobić szybko (z wyjątkiem czasu przetwarzania), mogę to zaimplementować w moim produkcie. Co to byłby za dar.
287352

Innym źródłem API może być środowisko NodeWebkit
John Dvorak

1

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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.