Sakhanda Wire
NVDA MSFT GOOGL META AMZN
← К новостям

Сверхбыстрая и точная транскрипция с Granite Speech 5.0 Turbo CTC

Чрезвычайно быстрая и точная транскрибация с Granite Speech 5.0 Turbo CTC
Для предприятий Статья
Опубликовано 25 августа 2026 г.

Кратко

Сегодня мы рады объявить о выпуске двух новых моделей в семействе Granite Speech: компактных англоязычных моделей распознавания речи с 470 млн параметров, сочетающих высокую точность с беспрецедентной скоростью — более 12 600 RTFx на GPU NVIDIA H200, то есть при пакетной обработке они способны транскрибировать более 3,5 часа речи за одну секунду.

  1. granite-speech-5.0-470m-turboctc
  2. granite-speech-5.0-470m-turboctc-nc

Чтобы оценить скорость отклика моделей, ознакомьтесь с нашей демоверсией потокового распознавания речи на 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.

granite-speech-5.0-470m-turboctc granite-speech-5.0-470m-turboctc-nc Рисунок 1: Неофициальные результаты для общедоступных тестовых наборов, использованных в рейтинге OpenASR, по состоянию на 21 августа 2026 года. Вывод выполнялся с использованием HF Jobs, а оценка — с помощью инструментов рейтинга OpenASR, поэтому ожидается, что результаты WER и показатели RTFx совпадут с официальными.

en_shortform_rtfx_wer_delta en_shortform_size_wer_delta Рисунок 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 стека, где для временного понижения дискретизации используются свёртки с шагом.

architecture Рисунок 3: Расположение операций субдискретизации в стеке из 16 блоков Conformer, составляющих энкодер. Обратите внимание, что для ясности самообусловливание на этом рисунке не показано.

На рисунке ниже показана реализация блока Conformer, выполняющего временную субдискретизацию, в сравнении со стандартным блоком Conformer. Изменения заключаются в следующем: (1) свёрточный блок выполняет временные свёртки с параметром stride= 2; (2) остаточная связь свёрточного блока подвергается временной субдискретизации путём вычисления среднего для последовательных пар позиций. Стандартный блок Conformer следует реализации Phil Wang (lucidrains), за исключением того, что мы используем фрагментированное внимание и полагаемся на scaled_dot_product_attention() из PyTorch вместо исходной реализации einsum().

conformerblocks_inline Рисунок 4: Сравнение стандартного блока Conformer и блока Conformer с субдискретизацией.

Данные для обучения

Модели Granite Speech 5.0 обучаются на сочетании естественных и синтетических данных. В таблице ниже перечислены естественные наборы данных, использованные при обучении, и указано, применялся ли набор для обучения обеих моделей или только некоммерческой модели.

Обе модели также обучаются на трёх синтетических наборах данных:

  1. 2000 часов данных с несколькими дикторами, созданных путём объединения сегментов с одним диктором из MLS, YODAS, CommonVoice-17, VoxPopuli и AMI;
  2. 500 часов данных с несколькими дикторами, созданных путём объединения сегментов с одним диктором из Earnings-22; и
  3. 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

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием Hugging Face

Читать оригинал на Hugging Face ↗

Текст и изображения принадлежат Hugging Face и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости