Сверхбыстрая и точная транскрипция с Granite Speech 5.0 Turbo CTC
Кратко
Сегодня мы рады объявить о выпуске двух новых моделей в семействе Granite Speech: компактных англоязычных моделей распознавания речи с 470 млн параметров, сочетающих высокую точность с беспрецедентной скоростью — более 12 600 RTFx на GPU NVIDIA H200, то есть при пакетной обработке они способны транскрибировать более 3,5 часа речи за одну секунду.
Чтобы оценить скорость отклика моделей, ознакомьтесь с нашей демоверсией потокового распознавания речи на WebGPU. Обратите внимание: демоверсия работает только в браузерах Chrome и Edge.
Две модели главным образом различаются обучающими данными и лицензированием: granite-speech-5.0-470m-turboctc-nc обучалась на дополнительных данных и распространяется по лицензии CC-BY-NC-SA-4.0, тогда как granite-speech-5.0-470m-turboctc обучалась на меньшем наборе данных и распространяется по лицензии Apache 2.0.
Производительность
Ниже мы приводим неофициальные результаты на общедоступных англоязычных тестовых наборах коротких аудиофрагментов из рейтинга OpenASR. Официальные результаты, включающие закрытые наборы данных, см. в рейтинге.
Мы приводим столбчатые диаграммы производительности ibm-granite/granite-speech-5.0-470m-turboctc-nc и ibm-granite/granite-speech-5.0-470m-turboctc, а также графики Парето для компромиссов между скоростью и точностью и между размером модели и точностью. Обе модели обеспечивают высокую точность: некоммерческая модель показывает совокупный WER 4,85%, а модель Apache 2.0 — 5,00%, при этом их совокупная пропускная способность беспрецедентно высока и превышает 12 600 RTFx. Некоммерческая модель немного точнее модели Apache 2.0 на большинстве тестовых наборов; более заметное преимущество наблюдается на SPGI Speech, а более заметный недостаток — на новом фрагментированном тесте Earnings22.
Рисунок 1: Неофициальные результаты для общедоступных тестовых наборов, использованных в рейтинге OpenASR, по состоянию на 21 августа 2026 года. Вывод выполнялся с использованием HF Jobs, а оценка — с помощью инструментов рейтинга OpenASR, поэтому ожидается, что результаты WER и показатели RTFx совпадут с официальными.
Рисунок 2: Неофициальные графики Парето (скорость и точность, размер модели и точность), построенные на основе результатов для общедоступных тестовых наборов рейтинга OpenASR по состоянию на 21 августа 2026 года.
Обе модели также хорошо распознают речь в дальней зоне, что подтверждается рейтингом FFASR. По состоянию на 25 августа 2026 года ibm-granite/granite-speech-5.0-470m-turboctc занимала девятое место по точности, а ibm-granite/granite-speech-5.0-470m-turboctc-nc — пятое, при этом они были двумя самыми быстрыми моделями. Обратите внимание, что это официальные результаты.
Архитектура модели
В отличие от предыдущих моделей Granite Speech, состоящих из акустического энкодера, проектора и Granite LM с адаптерами LoRA, новые модели являются моделями только с энкодером. Такая архитектура обеспечивает высокую производительность транскрибации, небольшой объём памяти — всего 470 млн параметров — и более чем в 20 раз большую пропускную способность по сравнению с предыдущими моделями Granite Speech. Новые модели отказываются от некоторых возможностей моделей с языковой моделью, таких как перевод речи и учёт ключевых слов, но идеально подходят для задач преобразования речи в текст на периферийных устройствах.
У моделей Granite 5.0 Speech много общего с энкодерами, использовавшимися в предыдущих моделях Granite Speech. Все они
- состоят из стека из 16 блоков Conformer,
- используют самообусловливание на выходе 8-го блока,
- применяют фрагментированное внимание, чтобы избежать квадратичного роста относительно длины последовательности, характерного для стандартного внимания со скалярным произведением, и
- оптимизируют при обучении функцию потерь коннекционистской временной классификации (CTC).
Новизна моделей Granite 5.0 Speech заключается в том, что они работают со значительно меньшей частотой токенов, чем наши предыдущие энкодеры, и используют другую токенизацию выходных данных. Если предыдущие энкодеры генерировали 50 символов в секунду, то модели Granite 5.0 генерируют 12,5 токена в секунду: ibm-granite/granite-speech-5.0-470m-turboctc-nc использует токенизацию SentencePiece, а ibm-granite/granite-speech-5.0-470m-turboctc — токенизацию BPE. В обоих случаях токенизаторы обучаются на расшифровках речи.
Чтобы перейти от частоты 100 кадров в секунду на входе логарифмической мел-спектрограммы к частоте 12,5 токена в секунду, мы используем три этапа субдискретизации в 2 раза, как показано ниже. На первом этапе, который также используется в энкодерах предыдущих моделей Granite Speech, последовательные векторы признаков логарифмической мел-спектрограммы объединяются посредством простой операции reshape(). Второй и третий этапы встроены в первые два блока Conformer стека, где для временного понижения дискретизации используются свёртки с шагом.
Рисунок 3: Расположение операций субдискретизации в стеке из 16 блоков Conformer, составляющих энкодер. Обратите внимание, что для ясности самообусловливание на этом рисунке не показано.
На рисунке ниже показана реализация блока Conformer, выполняющего временную субдискретизацию, в сравнении со стандартным блоком Conformer. Изменения заключаются в следующем: (1) свёрточный блок выполняет временные свёртки с параметром stride= 2; (2) остаточная связь свёрточного блока подвергается временной субдискретизации путём вычисления среднего для последовательных пар позиций. Стандартный блок Conformer следует реализации Phil Wang (lucidrains), за исключением того, что мы используем фрагментированное внимание и полагаемся на scaled_dot_product_attention() из PyTorch вместо исходной реализации einsum().
Рисунок 4: Сравнение стандартного блока Conformer и блока Conformer с субдискретизацией.
Данные для обучения
Модели Granite Speech 5.0 обучаются на сочетании естественных и синтетических данных. В таблице ниже перечислены естественные наборы данных, использованные при обучении, и указано, применялся ли набор для обучения обеих моделей или только некоммерческой модели.
| Название | # часов | Модель | Источник |
|---|---|---|---|
| MLS | 44600 | Обе | https://huggingface.co/datasets/facebook/multilingual_librispeech |
| YODAS | 8900 | Обе | https://huggingface.co/datasets/espnet/yodas |
| CommonVoice-17 | 2500 | Обе | https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0 |
| Librispeech | 960 | Обе | https://huggingface.co/datasets/openslr/librispeech_asr |
| VoxPopuli | 500 | Обе | https://huggingface.co/datasets/facebook/voxpopuli |
| AMI | 150 | Обе | https://huggingface.co/datasets/edinburghcstr/ami |
| Earnings-22 | 100 | Обе | https://huggingface.co/datasets/esb/datasets |
| GigaSpeech | 10000 | NC | https://huggingface.co/datasets/speechcolab/gigaspeech |
| SPGI Speech | 4900 | NC | https://huggingface.co/datasets/kensho/spgispeech |
Обе модели также обучаются на трёх синтетических наборах данных:
- 2000 часов данных с несколькими дикторами, созданных путём объединения сегментов с одним диктором из MLS, YODAS, CommonVoice-17, VoxPopuli и AMI;
- 500 часов данных с несколькими дикторами, созданных путём объединения сегментов с одним диктором из Earnings-22; и
- 240 часов высказываний, содержащих числа, валюты, названия веб-сайтов, номера телефонов, адреса, а также элементы с десятичными точками или точками, сгенерированных с помощью
gpt-oss-120bилиgpt-oss-20bи синтезированных с использованиемStyleTTS2.
Использование
Granite Speech 5.0 TurboCTC изначально поддерживается в transformers. До выхода следующего релиза Transformers установите пакет из исходного кода:
pip install git+https://github.com/huggingface/transformers.git datasets
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor
model_id = "ibm-granite/granite-speech-5.0-470m-turboctc"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCTC.from_pretrained(model_id, device_map="auto")
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el["array"] for el in ds["audio"][:5]]
# `device` вычисляет логарифмическую мел-спектрограмму на ускорителе модели, экономя копирование с хоста на устройство
inputs = processor(
speech_samples, sampling_rate=processor.feature_extractor.sampling_rate, device=model.device
)
inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs)
print(processor.batch_decode(outputs, skip_special_tokens=True))
Модели, упомянутые в этой статье 2
Пространства, упомянутые в этой статье 2
Статьи, упомянутые в этой статье 1
Коллекции, упомянутые в этой статье 1
Сообщество
· Зарегистрируйтесь или войдите, чтобы оставить комментарий
Модели, упомянутые в этой статье 2
Пространства, упомянутые в этой статье 2
Статьи, упомянутые в этой статье 1
Коллекции, упомянутые в этой статье 1
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.