Привет, давно не виделись, давно ничего не писал, поэтому сегодня кратко познакомлю вас с моделью распознавания речи Whisper.
Whisper — это модель перевода с открытым исходным кодом для распознавания речи, выпущенная openai в сентябре. Надежность и точность перевода на английский язык достигли очень высокого уровня. Она поддерживает переводы на 99 языков, относительно проста и быстра в установке и использовании. Теперь позвольте мне покажу вам установку и простое использование шепота.Я также столкнулся с некоторыми проблемами в процессе.Я также опубликую решения.Надеюсь, это будет вам полезно.
-
среда:
Окно,Python3.8,
-
Установить:
1.установка библиотеки whiper
pip install git+https://github.com/openai/whisper.git
После успешного завершения операции, когда на интерфейсе cmd будет выполнен шепот, появится следующее приглашение, указывающее, что установка прошла успешно:
2.установка ffmpeg
Whisper необходимо использовать инструмент ffmpeg для извлечения звуковых данных, поэтому вам необходимо загрузить и установить ffmpeg.Адрес загрузки:
http://ffmpeg.org/download.html#build-windows
После входа на страницу загрузки нажмите на изображение ниже.
Согласно рисункам 1 и 2 выше, вы можете скачать сжатый пакет ffmpeg, разархивировать его в любое место на вашем компьютере, а затем добавить к нему переменные среды. Мой путь следующий: C:\Users\heyj01\Desktop\ffmpeg -master-latest-win64 Добавьте -gpl-shared\bin в окно переменной среды cmd и введите ffmpeg. Следующее приглашение указывает на успех:
3. Другие зависимые библиотеки Python
Поскольку Whisper также использует pytorch, Transform и другие библиотеки, когда вы в следующий раз запустите Whisper для перевода, просто используйте имя модуля установки pip, чтобы установить его в соответствии с подсказками.
-
Использование :
Whisper очень прост в использовании
#引用whisper模块
import whisper
#加载large模型
model = whisper.load_model("large")
#根据视频的语音翻译成中文
result = model.transcribe("test.mp4",language='Chinese')
#whispe默认是30秒的翻译窗口,根据30秒语音切片,生成2秒翻译结果列表
for i in result["segments"]:
print(i['text'])
Прежде всего, у Whisper есть следующие модели. Каждый размер различен, и требуемое время расчета памяти также различно. Чем меньше модель, тем выше скорость перевода, но эффект перевода с распознаванием речи на других языках непоследователен. с языком видео будет хуже.Наоборот, чем больше модель, тем больше памяти используется для скорости перевода и тем лучше эффект.
Функция load_model также имеет два параметра: устройство и download_root.
Устройство — вычислительный движок. Вы можете выбрать CPU или CUDA (то есть графический процессор). Если не заполнить, по умолчанию используется CPU. Если у вас есть видеокарта и видеопамять соответствует размеру модели вы выбрали, он может работать нормально. В противном случае будет сообщено об ошибке памяти.
download_root - это путь сохранения и чтения модели. Если он не заполнен, по умолчанию используется путь под системным пользователем. В моем случае C:\Users\heyj01\.cache\whisper, при первой загрузке модели время, если модели нет в пути, модель будет загружена по пути download_root.
Язык функции транскрипции в настоящее время поддерживает 99 языков, а именно:
"en": "english","zh": "chinese",
"de": "german","es": "spanish",
"ru": "russian","ko": "korean",
"fr": "french","ja": "japanese",
"pt": "portuguese","tr": "turkish",
"pl": "polish","ca": "catalan",
"nl": "dutch","ar": "arabic",
"sv": "swedish","it": "italian",
"id": "indonesian","hi": "hindi",
"fi": "finnish","vi": "vietnamese",
"he": "hebrew","uk": "ukrainian",
"el": "greek","ms": "malay",
"cs": "czech","ro": "romanian",
"da": "danish","hu": "hungarian",
"ta": "tamil","no": "norwegian",
"th": "thai","ur": "urdu",
"hr": "croatian","bg": "bulgarian",
"lt": "lithuanian","la": "latin",
"mi": "maori","ml": "malayalam",
"cy": "welsh","sk": "slovak",
"te": "telugu","fa": "persian",
"lv": "latvian","bn": "bengali",
"sr": "serbian","az": "azerbaijani",
"sl": "slovenian","kn": "kannada",
"et": "estonian","mk": "macedonian",
"br": "breton","eu": "basque",
"is": "icelandic","hy": "armenian",
"ne": "nepali","mn": "mongolian",
"bs": "bosnian","kk": "kazakh",
"sq": "albanian","sw": "swahili",
"gl": "galician","mr": "marathi",
"pa": "punjabi","si": "sinhala",
"km": "khmer","sn": "shona",
"yo": "yoruba","so": "somali",
"af": "afrikaans","oc": "occitan",
"ka": "georgian","be": "belarusian",
"tg": "tajik","sd": "sindhi",
"gu": "gujarati","am": "amharic",
"yi": "yiddish","lo": "lao",
"uz": "uzbek","fo": "faroese",
"ht": "haitian creole","ps": "pashto",
"tk": "turkmen","nn": "nynorsk",
"mt": "maltese","sa": "sanskrit",
"lb": "luxembourgish","my": "myanmar",
"bo": "tibetan","tl": "tagalog",
"mg": "malagasy","as": "assamese",
"tt": "tatar","haw": "hawaiian",
"ln": "lingala","ha": "hausa",
"ba": "bashkir","jw": "javanese","su": "sundanese",
Официальный представитель также предоставляет еще один план звонков:
import whisper
model = whisper.load_model("base")
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)
# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
# decode the audio
options = whisper.DecodingOptions(language='Chinese')
result = whisper.decode(model, mel, options)
# print the recognized text
print(result.text)
Этот метод сообщил об ошибке, поскольку на моем компьютере нет графического процессора, поэтому эта строка кода
options = шепот.DecodingOptions(language='zh')
Измените на: options = шепот.DecodingOptions(language='zh',fp16 = False), поскольку процессор не поддерживает fp16.
-
Подведем итог
После тестирования распознавание английского языка Whisper по-прежнему очень хорошее. Для распознавания и перевода некоторых небольших языков необходимо использовать большие модели для достижения лучших результатов. Тем не менее, он по-прежнему намного лучше, чем другие модели распознавания и перевода, и это Это открытый исходный код. Я верю, что Whisper будет. Становится все лучше и лучше, и, наконец, указан адрес Whisper на GitHub:
https://github.com/openai/whisper
Вот и все, что касается простой установки и использования Whsper. Надеюсь, вы сможете использовать эту модель с открытым исходным кодом для разработки некоторых интересных инструментов. Следующая статья будет о том, как я использую Whsper+pyqt5 для разработки функции генерации субтитров с распознаванием и переводом речи, а также автоматически добавлять субтитры к видео.Инструмент для мониторинга микрофонов для создания субтитров.Если вам интересно, вы можете его с нетерпением ждать.