Guest User

Транскрибация для чайников

a guest
Aug 6th, 2023
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.13 KB | None | 0 0
  1. Преобразование речи в текст с помощью нейросети — Транскрибация
  2.  
  3. - необходим #DataScientist или #Engineer с базовыми знаниями #python и желательно #jupyter
  4. - переходим в репозиторий Whisper
  5.  (https://github.com/openai/whisper)- следуем инструкциям по установке в README.md
  6. - модель `medium`работает достаточно хорошо, выбираем её, примерная скорость работы 1ч30минут на 1ч аудио
  7. - для скорости желательно настроить torch что бы он использовал GPU с CUDA, а не CPU
  8. - модель мультиязычна — неважно на каком языке аудио (input) и в какой язык переводить (output)
  9. - подготавливаем звуковой файл из видео с помощью утилиты ffmpeg
  10.  
  11. Для всего видео
  12. ffmpeg -i "video.mp4" -q:a 0 -map a "audio.mp3"
  13.  
  14. Для определённого отрезка
  15.  
  16. ключ -ss временная метка начала отрезка
  17. ключ -t продолжительность отрезка
  18. ffmpeg -i "video.mp4" -ss 00:00:00 -t 00:00:30.0 -q:a 0 -map a "audio.mp3"
  19.  
  20. - используем минимальный python код (можно в Jupyter-блокноте)
  21.  
  22. python
  23. import os
  24. import numpy as np
  25. import tensorflow
  26.  
  27. import torch
  28. import pandas as pd
  29. import whisper
  30. import torchaudio
  31.  
  32. from tqdm.notebook import tqdm
  33.  
  34. # ❗️Настроить torch так что бы считалось на видеокарте, не 'cpu'
  35. DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
  36. print(DEVICE)
  37.  
  38. # загрузка модели первый раз долгая
  39. model = whisper.load_model("medium")
  40. print(
  41.     f"Model is {'multilingual' if model.is_multilingual else 'English-only'} "
  42.     f"and has {sum(np.prod(p.shape) for p in model.parameters()):,} parameters."
  43. )
  44.  
  45. # указываем имя к звуковому файлу
  46. file_name = 'audio_file_name'
  47.  
  48. # запускаем работу модели
  49. # не забываем точно указать целевой язык в котором должен получиться текст, ru, en или другие
  50. # аргумент fp16 по усмотрению
  51. # аргумент verbose покажет таймкоды
  52. result = model.transcribe(f'{file_name}.mp3', language='ru', fp16=False, verbose=True)
  53.  
  54. # результат запишется в файл
  55. with open(f'{file_name}.md', 'w', encoding='utf8') as file:
  56.     file.write(result["text"])
  57.  
  58. - результат работы лучше чему у нейросети Vosk (https://proglib.io/p/reshaem-zadachu-perevoda-russkoy-rechi-v-tekst-s-pomoshchyu-python-i-biblioteki-vosk-2022-06-30) (на 20 мин видео 2ч редактуры вместо 1ч для текста от Whisper)
  59. - результат работы не идеальный, по этому его нужно проверять и редактировать
Advertisement
Add Comment
Please, Sign In to add comment