/ Модель

Характеристики

Параметры
905 млн
Лицензия
Apache 2.0
Архитектура
whisper · dense
Библиотека
transformers
Опубликована
29 апр 2024

kotoba-whisper-v1.1

Распознавание речиАудио → текст8 профессий

Японская модель на базе Whisper для транскрибирования речи с автоматической расстановкой пунктуации и временными метками.

267скачиваний за 30 дней34лайкавеса обновлены23 окт 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Распознавание речи» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

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

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Kotoba-Whisper-v1.1 — японская модель распознавания речи на базе kotoba-tech/kotoba-whisper-v1.0, разработанная Kotoba Technologies в сотрудничестве с Asahi Ushio. Она использует архитектуру Whisper и насчитывает около 905 млн параметров. Модель принимает аудио и выдаёт японскую транскрипцию; встроенный конвейер добавляет пунктуацию и улучшает временные метки с помощью Stable-ts.

Модель предназначена для транскрибирования японской речи, в том числе длинных аудиозаписей, и поддерживает подсказки при распознавании. В README приведено сравнение скорости на 50 минутах речи: версия 1.1 с пунктуацией и временными метками работает медленнее версии 1.0 с отключёнными временными метками. Для использования нужны Transformers версии 4.39 или новее, а также Stable-ts и punctuators. Лицензия — Apache-2.0.

Сценарии применения

  • транскрибация японских аудиозаписей
  • создание японских субтитров с временными метками
  • автоматическая расстановка пунктуации в японской расшифровке
  • распознавание японской речи в длинных записях

Ограничения

Добавление пунктуации и временных меток снижает скорость по сравнению с Kotoba-Whisper-v1.0 без временных меток. Модель предназначена для японского языка.

Для каких профессий подходит8

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Kotoba-Whisper-v1.1

Kotoba-Whisper-v1.1 is a Japanese ASR model based on kotoba-tech/kotoba-whisper-v1.0, with additional postprocessing stacks integrated as pipeline. The new features includes adding punctuation with punctuators. These libraries are merged into Kotoba-Whisper-v1.1 via pipeline and will be applied seamlessly to the predicted transcription from kotoba-tech/kotoba-whisper-v1.0. The pipeline has been developed through the collaboration between Asahi Ushio and Kotoba Technologies

Following table presents the raw CER (unlike usual CER where the punctuations are removed before computing the metrics, see the evaluation script here) along with the.

modelCommonVoice 8 (Japanese test set)JSUT Basic 5000ReazonSpeech (held out test set)
kotoba-tech/kotoba-whisper-v2.017.615.417.4
kotoba-tech/kotoba-whisper-v2.117.715.417
kotoba-tech/kotoba-whisper-v1.017.815.217.8
kotoba-tech/kotoba-whisper-v1.117.91517.8
openai/whisper-large-v315.313.420.5
openai/whisper-large-v215.910.634.6
openai/whisper-large16.611.340.7
openai/whisper-medium17.913.139.3
openai/whisper-base34.526.476
openai/whisper-small21.518.948.1
openai/whisper-tiny58.838.3153.3

Regarding to the normalized CER, since those update from v1.1 will be removed by the normalization, kotoba-tech/kotoba-whisper-v1.1 marks the same CER values as kotoba-tech/kotoba-whisper-v1.0.

Latency

Kotoba-whisper-v1.1 improves the punctuation and the timestamp of the output from Kotoba-whisper-v1.0. However, since we apply the punctuator and stable-ts to each chunk, we need to obtain the timestamps, which decreases the latency of the original kotoba-whisper-v1.0. See the following table comparing the inference speed on transcribing 50min Japanese speech audio, where we report the average over five independent runs.

modelreturn_timestampstime (mean)
kotoba-tech/kotoba-whisper-v1.0False10.8
kotoba-tech/kotoba-whisper-v1.0True15.7
kotoba-tech/kotoba-whisper-v1.1 (punctuator + stable-ts)True17.9
kotoba-tech/kotoba-whisper-v1.1 (punctuator)True17.7
kotoba-tech/kotoba-whisper-v1.1 (stable-ts)True16.1
openai/whisper-large-v3False29.1
openai/whisper-large-v3True37.9

See the full table here.

Transformers Usage

Kotoba-Whisper-v1.1 is supported in the Hugging Face 🤗 Transformers library from version 4.39 onwards. To run the model, first install the latest version of Transformers.

pip install --upgrade pip
pip install --upgrade transformers accelerate torchaudio
pip install stable-ts==2.16.0
pip install punctuators==0.0.5

Transcription

The model can be used with the pipeline class to transcribe audio files as follows:

import torch
from transformers import pipeline
from datasets import load_dataset

# config
model_id = "kotoba-tech/kotoba-whisper-v1.1"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model_kwargs = {"attn_implementation": "sdpa"} if torch.cuda.is_available() else {}
generate_kwargs = {"language": "ja", "task": "transcribe"}

# load model
pipe = pipeline(
    model=model_id,
    torch_dtype=torch_dtype,
    device=device,
    model_kwargs=model_kwargs,
    batch_size=16,
    trust_remote_code=True,
    punctuator=True
)

# load sample audio
dataset = load_dataset("japanese-asr/ja_asr.reazonspeech_test", split="test")
sample = dataset[0]["audio"]

# run inference
result = pipe(sample, chunk_length_s=15, return_timestamps=True, generate_kwargs=generate_kwargs)
print(result)
  • To transcribe a local audio file, simply pass the path to your audio file when you call the pipeline:
- result = pipe(sample, return_timestamps=True, generate_kwargs=generate_kwargs)
+ result = pipe("audio.mp3", return_timestamps=True, generate_kwargs=generate_kwargs)
  • To deactivate punctuator:
-     punctuator=True,
+     punctuator=False,

Transcription with Prompt

Kotoba-whisper can generate transcription with prompting as below:

import re
import torch
from transformers import pipeline
from datasets import load_dataset

# config
model_id = "kotoba-tech/kotoba-whisper-v1.1"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model_kwargs = {"attn_implementation": "sdpa"} if torch.cuda.is_available() else {}
generate_kwargs = {"language": "japanese", "task": "transcribe"}

# load model
pipe = pipeline(
    model=model_id,
    torch_dtype=torch_dtype,
    device=device,
    model_kwargs=model_kwargs,
    batch_size=16,
    trust_remote_code=True
)

# load sample audio
dataset = load_dataset("japanese-asr/ja_asr.reazonspeech_test", split="test")

# --- Without prompt ---
text = pipe(dataset[10]["audio"], chunk_length_s=15, generate_kwargs=generate_kwargs)['text']
print(text)
# 81歳、力強い走りに変わってきます。

# --- With prompt ---: Let's change `81` to `91`.
prompt = "91歳"
generate_kwargs['prompt_ids'] = pipe.tokenizer.get_prompt_ids(prompt, return_tensors="pt").to(device)
text = pipe(dataset[10]["audio"], generate_kwargs=generate_kwargs)['text']
# currently the pipeline for ASR appends the prompt at the beginning of the transcription, so remove it
text = re.sub(rf"\A\s*{prompt}\s*", "", text)
print(text)
# あっぶったでもスルガさん、91歳、力強い走りに変わってきます。

Flash Attention 2

We recommend using Flash-Attention 2 if your GPU allows for it. To do so, you first need to install Flash Attention:

pip install flash-attn --no-build-isolation

Then pass attn_implementation="flash_attention_2" to from_pretrained:

- model_kwargs = {"attn_implementation": "sdpa"} if torch.cuda.is_available() else {}
+ model_kwargs = {"attn_implementation": "flash_attention_2"} if torch.cuda.is_available() else {}

Acknowledgements

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
WhisperForConditionalGeneration
Ревизия весов
cf81345

0 моделей