--- language: - en - zh - de - es - ru - ko - fr - ja - pt - tr - pl - ca - nl - ar - sv - it - id - hi - fi - vi - he - uk - el - ms - cs - ro - da - hu - ta - 'no' - th - ur - hr - bg - lt - la - mi - ml - cy - sk - te - fa - lv - bn - sr - az - sl - kn - et - mk - br - eu - is - hy - ne - mn - bs - kk - sq - sw - gl - mr - pa - si - km - sn - yo - so - af - oc - ka - be - tg - sd - gu - am - yi - lo - uz - fo - ht - ps - tk - nn - mt - sa - lb - my - bo - tl - mg - as - tt - haw - ln - ha - ba - jw - su tags: - audio - automatic-speech-recognition license: mit base_model: - openai/whisper-large-v2 pipeline_tag: automatic-speech-recognition --- # Den4ikAI/whisper-large-v2-no-digits-norm-punct Это специальная версия модели `openai/whisper-large-v2`, из словаря которой были удалены все токены, отвечающие за цифры, а также токены с мусорной пунктуацией. Основная цель этой модификации — **заставить модель генерировать числа словами**, а не цифрами. Это крайне полезно для задач нормализации текста, например, при подготовке данных для систем синтеза речи (TTS), где требуется произносить числа полностью. ## Сравнение с оригинальной моделью Вот наглядный пример, демонстрирующий разницу в поведении моделей при распознавании одной и той же аудиозаписи с фразой "Билет стоил двадцать тысяч рублей". | Модель | Результат транскрипции | | ------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `openai/whisper-large-v2` (Оригинал) | `<\|startoftranscript\|><\|ru\|><\|transcribe\|><\|notimestamps\|> Билет стоил **20000** рублей.<\|endoftext\|>` | | `Den4ikAI/whisper-large-v2-no-digits-norm-punct` (Эта модель) | `<\|startoftranscript\|><\|ru\|><\|transcribe\|><\|notimestamps\|> Билет стоил **двадцать тысяч** рублей.<\|endoftext\|>` | Как видно, эта модель корректно нормализовала число, в то время как оригинальная версия оставила его в виде цифр. ## Как использовать Вы можете использовать эту модель так же, как и любую другую модель Whisper в библиотеке `transformers`. ```python from transformers import WhisperProcessor, WhisperForConditionalGeneration import torchaudio import torch # Укажите устройство (GPU, если доступен) device = "cuda:0" if torch.cuda.is_available() else "cpu" wav, sr = torchaudio.load("numbers5.mp3") # Преобразование в моно и ресемплинг до 16кГц if wav.shape[0] > 1: wav = torch.mean(wav, dim=0, keepdim=True) resampler = torchaudio.transforms.Resample(sr, 16000) wav = resampler(wav) audio_input = wav.squeeze(0) # Загрузка модели и процессора model_id = "Den4ikAI/whisper-large-v2-no-digits-norm-punct" processor = WhisperProcessor.from_pretrained(model_id) model = WhisperForConditionalGeneration.from_pretrained(model_id).to(device) # Обработка аудио и получение признаков input_features = processor( audio_input, sampling_rate=16000, return_tensors="pt" ).input_features.to(device) # Генерация токенов # Для русского языка указываем language="russian" predicted_ids = model.generate(input_features, language="russian", task="transcribe") # Декодирование в текст transcription = processor.batch_decode( predicted_ids, skip_special_tokens=False # Установите True, чтобы убрать <|...|> токены ) print(transcription) # Пример вывода для аудио с числами: # ['<|startoftranscript|><|ru|><|transcribe|><|notimestamps|> Билет стоил двадцать тысяч рублей.<|endoftext|>']