LINUX.ORG.RU

Транскрипция видео в текст , Локально

 ,


2

2

Коллеги, кто как делает локально разпознавание речи( русский язык ) в видео файле и как отдельно юзать что-то по типу этого https://nextcloud.com/blog/app-contest-develop-an-app-with-the-smart-picker-to-win/ ?

★★★★★

Ответ на: комментарий от pinachet

Подёргался тогда, да и забил, тем более нам вскоре документацию на бумаге выдали вместо всех этих бормотаний. В принципе, на выходных могу обратно углубиться в тему, но лучше всё же самому этим заняться.

Mobutu_Sese_Seko
()
Ответ на: комментарий от pinachet

У меня телеграм бот распознает голосовые сообщения обращенные к нему и отвечает как GPT chat.

Устанавливаешь отсюда https://github.com/openai/whisper

запускаешь из консоли командой типа такой и он распознает текст из любого медиа файла который может прочитать ffmpeg. с vosk примерно так же всё

whisper --model base Станислав\ Дробышевский.\ Онлайн-лекция\ 20\ июня\ 2023\ г.\ "Жизнь\ на\ чужих\ планетах\ в\ неизведанных\ мирах"\ \[b3QiGOWG13Y\].mp4
/home/user/.local/lib/python3.11/site-packages/whisper/timing.py:57: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.
  @numba.jit
/home/user/.local/lib/python3.11/site-packages/whisper/transcribe.py:114: UserWarning: FP16 is not supported on CPU; using FP32 instead
  warnings.warn("FP16 is not supported on CPU; using FP32 instead")
Detecting language using up to the first 30 seconds. Use `--language` to specify the language
Detected language: Russian
[00:00.000 --> 00:28.000]  Пасов, вот и планеты, что-то произошло.
[00:29.000 --> 00:31.000]  Что это было?
[00:33.000 --> 00:35.000]  Что это?
[00:36.000 --> 00:38.000]  Муравей.
[00:38.000 --> 00:39.000]  Муравей?
[00:39.000 --> 00:42.000]  Никакых него вести видно, заводят с грузами.
[00:43.000 --> 00:46.000]  Вот я подхватил его пальцем.
[00:46.000 --> 00:51.000]  Сейчас вновь опущу на цветок и он спросит другого муравья.
[00:51.000 --> 00:53.000]  Что со мной было?
[00:53.000 --> 00:55.000]  Но как ему объяснить?
...

theurs ★★
()
Ответ на: комментарий от theurs

Кстати у меня бот еще и может пересказать содержание видео с ютуба Ж) но он не распознает голос оттуда а просто читает субтитры, так намного быстрее получается.

как то так

https://www.youtube.com/watch?v=IKQlPV19J6o
Вот краткое изложение текста: Автор рассказывает о своей занятости и отсутствии времени на видеосъемки из-за множества экскурсий и подготовки к ним. Он также упоминает свой день рождения и желание выпустить новый дневник музея. Автор затем обсуждает советскую игровую приставку «Видеоспорт», выпущенную в 1983 году, и демонстрирует ее работу. Он приглашает зрителей посетить его музей и поиграть в приставку. В конце автор благодарит своих бустименов за поддержку и приглашает на следующую экскурсию.


Мог бы и голос распознавать, для этого надо просто скачивать аудиодорожку и распознавать как голосовое сообщение, ничего сложного.

theurs ★★
()
Ответ на: комментарий от theurs

для whisper

#pip install openai-whisper

import whisper

#model = whisper.load_model('small')
model = whisper.load_model('base')
#model = whisper.load_model('large-v2')


def get_text_from_file(audio_file: str, mod: str = "small") -> str:
    """возвращает распознанный текст из записи разговора"""
    global model
    result = model.transcribe(audio_file)
    text = '\n'.join(x['text'] for x in result['segments'])
    return text

theurs ★★
()
Ответ на: комментарий от theurs

У меня в VOSK модель русскоязычная весит около 2Гб, это самая последняя от них. В whisper я использую model base, памяти около 1Гб потребляет. А вот ЦП грузит под 90. Можно ли ЦП до 50% ограничить? Не могу параллельно работать из-за этого. Кампуктер не вывозит. Может посоветуешь как оптимизировать для старых железок?

Xant1k ★★
()
Ответ на: комментарий от Xant1k

Можно ли ЦП до 50% ограничить?

С помощью taskset можно ограничить, какие ядра проца разрешено использовать процессу. Так можно отдать процессу половину, а оставшиеся испольовать для параллельной работы.

CrX ★★★
()