Transformers documentation

MOSS-Transcribe-Diarize

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была добавлена в Hugging Face Transformers 14.10.2026.

MOSS-Transcribe-Diarize

Обзор

MOSS-Transcribe-Diarize 0.9B — это модель для сквозного понимания аудио, предназначенная для транскрипции длинных записей с несколькими говорящими, диаризации говорящих и определения временных меток. Она объединяет энкодер в стиле Whisper, этап слияния кадров 4×, мультимодальный проектор и языковую модель Qwen3.

Чекпоинт модели доступен по адресу: itazap/MOSS-Transcribe-Diarize-HF

Ключевые возможности включают:

  • Совместная транскрипция и диаризация за один проход, с сегментами в формате [start][S01]text[end].
  • Длинная аудио с помощью разбиения на фрагменты Whisper-window на стороне процессора; модель собирает фрагменты обратно для каждого примера.
  • Транскрипция по запросу с помощью apply_transcription_request или шаблона чата.
  • Поддержка многоязычности для более чем 50 языков.

Эта модель была предоставлена Ita Zaporozhets из команды Hugging Face. Подробности см. в карточке модели и в репозитории OpenMOSS.

Использование

Большинство примеров ниже используют apply_transcription_request — удобную функцию, которая формирует шаблон чата за вас. Эквивалентный вызов apply_chat_template описан в разделе Расширенное использование с шаблоном чата.

Базовая транскрипция и диаризация

Каждый репликатор декодируется как сегмент [start][S0N]text[end]. processor.decode может вернуть исходную декодированную строку, разобранные сегменты в виде списка словарей (return_format="parsed") или только склеенную транскрипцию (return_format="transcription_only").

from transformers import AutoProcessor, AutoModelForCausalLM

model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/podcast_sample.wav"
inputs = processor.apply_transcription_request(audio_url)
inputs = inputs.to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, do_sample=False, max_new_tokens=512)
generated_ids = outputs[:, inputs.input_ids.shape[1] :]

decoded = processor.decode(generated_ids, skip_special_tokens=True)
print("RAW OUTPUT:", decoded)

parsed = processor.decode(generated_ids, return_format="parsed")[0]
print("\nPARSED (list of dicts):")
for segment in parsed:
    print(segment)

transcription = processor.decode(generated_ids, return_format="transcription_only")
print("\nTRANSCRIPTION ONLY:", transcription[0])

"""
RAW OUTPUT: ["[0.48][S01] Hey everyone, welcome back to the show.[2.43][2.46][S01] Today, we're talking about the best way to learn a new skill.[5.22][5.43][S01] I'm here with Jordan to dig into it.[7.14][8.40][S02] Thanks for having me.[9.42][9.63][S02] My take is that consistency beats intensity every single time.[12.87][13.14][S01] That makes sense.[13.92][13.92][S01] Even 20 minutes a day adds up over a few months.[16.17][16.32][S02] Exactly, and writing down small wins keeps you motivated along the way.[19.62]"]

PARSED (list of dicts):
{'Start': 0.48, 'End': 2.43, 'Speaker': 1, 'Content': 'Hey everyone, welcome back to the show.'}
{'Start': 2.46, 'End': 5.22, 'Speaker': 1, 'Content': "Today, we're talking about the best way to learn a new skill."}
{'Start': 5.43, 'End': 7.14, 'Speaker': 1, 'Content': "I'm here with Jordan to dig into it."}
{'Start': 8.4, 'End': 9.42, 'Speaker': 2, 'Content': 'Thanks for having me.'}
{'Start': 9.63, 'End': 12.87, 'Speaker': 2, 'Content': 'My take is that consistency beats intensity every single time.'}
{'Start': 13.14, 'End': 13.92, 'Speaker': 1, 'Content': 'That makes sense.'}
{'Start': 13.92, 'End': 16.17, 'Speaker': 1, 'Content': 'Even 20 minutes a day adds up over a few months.'}
{'Start': 16.32, 'End': 19.62, 'Speaker': 2, 'Content': 'Exactly, and writing down small wins keeps you motivated along the way.'}

TRANSCRIPTION ONLY: Hey everyone, welcome back to the show. Today, we're talking about the best way to learn a new skill. I'm here with Jordan to dig into it. Thanks for having me. My take is that consistency beats intensity every single time. That makes sense. Even 20 minutes a day adds up over a few months. Exactly, and writing down small wins keeps you motivated along the way.
"""

Пользовательский промпт и горячие слова

apply_transcription_request принимает keywords для смещения транскрипции в сторону конкретных терминов (например, собственных имён или терминологии определённой предметной области), которые отображаются в шаблоне чата как 热词列表: («список горячих слов»). Вместе с ними можно передать пользовательский prompt для предоставления дополнительного контекста.

Ниже мы транскрибируем аудиозапись, в которой упоминается «Yorùbá», сравнивая результаты с использованием ключевого слова и без него.

from transformers import AutoProcessor, AutoModelForCausalLM

model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/languages_sample.wav"

# Without keywords
inputs = processor.apply_transcription_request(audio_url)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
transcription = processor.decode(outputs[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(f"WITHOUT keywords: {transcription[0]}")

# With keywords
inputs = processor.apply_transcription_request(audio_url, keywords=["Mandarin", "Yorùbá"])
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
transcription = processor.decode(outputs[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(f"WITH keywords   : {transcription[0]}")

"""
WITHOUT keywords: Let's talk about the most spoken languages in the world. Mandarin Chinese has the most native speakers, followed by Spanish, English, and Hindi. In West Africa, one of the most widely spoken languages is Yoruba, with over 50 million speakers.
WITH keywords   : Let's talk about the most spoken languages in the world. Mandarin Chinese has the most native speakers, followed by Spanish, English, and Hindi. In West Africa, one of the most widely spoken languages is Yorùbá, with over 50 million speakers.
"""

Расширенное использование с шаблоном чата

apply_transcription_request эквивалентен шаблону чата с пользовательским ходом, содержащим только аудио:

from transformers import AutoProcessor, AutoModelForCausalLM

model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
conversation = [
    {
        "role": "user",
        "content": [
            {"type": "audio", "url": audio_url},
        ],
    },
]

inputs = processor.apply_chat_template(
    conversation,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
).to(model.device, dtype=model.dtype)

outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
decoded = processor.decode(
    outputs[:, inputs.input_ids.shape[1] :],
    skip_special_tokens=True,
)
print(decoded)

Пакетный вывод

Передайте список аудио, а при необходимости — соответствующие списки промптов и/или ключевых слов, чтобы выполнить транскрипцию пачки за один вызов. Чтобы пропустить значение для конкретного примера, установите соответствующий элемент в None.

from transformers import AutoProcessor, AutoModelForCausalLM

model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
# `from_pretrained` is used here for convenience, the model can also be built from a config directly.
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

audio = [
    "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav",
    "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/languages_sample.wav",
]
keywords = [None, ["Mandarin", "Yorùbá"]]

inputs = processor.apply_transcription_request(audio, keywords=keywords)
inputs = inputs.to(model.device, dtype=model.dtype)
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=128)
transcription = processor.decode(outputs[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(transcription)

Обучение

Передайте целевые транскрипции, в формате вывода модели с временными метками и метками говорящих, в apply_transcription_request с помощью transcription. Возвращаемые labels используются для вычисления функции потерь.

from transformers import AutoModelForCausalLM, AutoProcessor

model_id = "itazap/MOSS-Transcribe-Diarize-HF"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
model.train()

audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
transcription = (
    "[0.00][S01] Welcome to this demonstration of automatic speech recognition and speaker diarization using an "
    "end-to-end transformer model.[7.47]"
)

inputs = processor.apply_transcription_request(audio_url, transcription=transcription)
inputs.to(model.device, dtype=model.dtype)

loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()

Torch compile

Модель можно скомпилировать для ускорения инференса/обучения. device_map="auto" оборачивает прямой проход хуками accelerate, что приводит к многократной повторной компиляции, поэтому загружайте модель напрямую на одно устройство.

На B200 мы зафиксировали ускорение примерно в 2,1 раза при размере батча 4.

import time

import torch

from transformers import AutoProcessor, AutoModelForCausalLM


model_id = "itazap/MOSS-Transcribe-Diarize-HF"

num_warmup = 5
num_runs = 20

# Load processor + model
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id).to("cuda")

# Prepare static inputs
audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
inputs = processor.apply_transcription_request([audio_url] * 4).to(model.device, torch.bfloat16)

# Benchmark without compile
print("Warming up without compile...")
with torch.no_grad():
    for _ in range(num_warmup):
        _ = model(**inputs)

torch.accelerator.synchronize()

print("\nBenchmarking without torch.compile...")
torch.accelerator.synchronize()
start = time.time()
with torch.no_grad():
    for _ in range(num_runs):
        _ = model(**inputs)
torch.accelerator.synchronize()
no_compile_time = (time.time() - start) / num_runs
print(f"Average time without compile: {no_compile_time:.4f}s")

# Benchmark with compile
print("\nCompiling model...")
model = torch.compile(model)

print("Warming up with compile (includes graph capture)...")
with torch.no_grad():
    for _ in range(num_warmup):
        _ = model(**inputs)

torch.accelerator.synchronize()

print("\nBenchmarking with torch.compile...")
torch.accelerator.synchronize()
start = time.time()
with torch.no_grad():
    for _ in range(num_runs):
        _ = model(**inputs)
torch.accelerator.synchronize()
compile_time = (time.time() - start) / num_runs
print(f"Average time with compile: {compile_time:.4f}s")

speedup = no_compile_time / compile_time
print(f"\nSpeedup: {speedup:.2f}x")

Для авторегрессионной транскрипции torch.compile ускоряет посимвольные прямые проходы внутри generate, предоставляя объект CompileConfig вместо прямой компиляции model.forward.

import torch
from transformers import AutoProcessor, AutoModelForCausalLM, CompileConfig

model_id = "itazap/MOSS-Transcribe-Diarize-HF"
num_warmup = 3

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id).to("cuda")

audio_url = "https://huggingface.co/datasets/itazap/audio_samples/resolve/main/intro_sample.wav"
inputs = processor.apply_transcription_request([audio_url] * 4).to(model.device, torch.bfloat16)

compile_config = CompileConfig()

# Warmup
for _ in range(num_warmup):
    _ = model.generate(**inputs, max_new_tokens=128, cache_implementation="static", compile_config=compile_config)

# Apply model
generated_ids = model.generate(
    **inputs, max_new_tokens=128, cache_implementation="static", compile_config=compile_config
)
transcription = processor.decode(generated_ids[:, inputs.input_ids.shape[1] :], return_format="transcription_only")
print(transcription)

MossTranscribeDiarizeConfig

класс transformers.MossTranscribeDiarizeConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151671projector_hidden_act: str = 'silu'projector_bias: bool = Trueaudio_merge_size: int = 4audio_chunk_size: int = 480000tie_word_embeddings: bool = True )

Параметры

  • audio_config (Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Объект конфигурации или словарь конфигурации аудио-бэкбона.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], необязательный) — Объект конфигурации или словарь конфигурации текстового бэкбона.
  • audio_token_id (int, необязательный, по умолчанию 151671) — Индекс аудио-токена, используемый как плейсхолдер для входного аудио.
  • projector_hidden_act (str, необязательный, по умолчанию silu) — Функция активации, используемая мультимодальным проектором.
  • projector_bias (bool, необязательный, по умолчанию True) — Использовать ли смещение (bias) в мультимодальном проекторе.
  • audio_merge_size (int, необязательный, по умолчанию 4) — Количество последовательных кадров кодировщика Whisper, объединяемых перед мультимодальным проектором.
  • audio_chunk_size (int, необязательный, по умолчанию 480000) — размер окна кодировщика Whisper в виде необработанных аудиоданных, используется вместе с padding_mask для восстановления audio_chunk_mapping.
  • tie_word_embeddings (bool, необязательный, по умолчанию True) — Определяет, следует ли связывать веса эмбеддингов согласно маппингу tied_weights_keys модели.

Это класс конфигурации для хранения конфигурации модели MossTranscribeDiarizeModel. Он используется для создания модели Moss Transcribe Diarize в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации hf-audio/MOSS-Transcribe-Diarize-HF

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> from transformers import MossTranscribeDiarizeForConditionalGeneration, MossTranscribeDiarizeConfig

>>> # Initializing a MossTranscribeDiarize configuration
>>> configuration = MossTranscribeDiarizeConfig()

>>> # Initializing a model from the configuration
>>> model = MossTranscribeDiarizeForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

MossTranscribeDiarizeAudioConfig

класс transformers.MossTranscribeDiarizeAudioConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonenum_mel_bins: int = 80num_hidden_layers: int = 24num_attention_heads: int = 16intermediate_size: int = 4096activation_function: str = 'gelu'hidden_size: int = 1024dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0initializer_range: float = 0.02max_source_positions: int = 1500 )

Параметры

  • num_mel_bins (int, необязательный, по умолчанию 80) — Количество mel-признаков, используемых на входной кадр. Должно соответствовать значению, применяемому в классе AutoFeatureExtractor.
  • num_hidden_layers (int, необязательный, по умолчанию 24) — Количество скрытых слоев в декодере Transformer.
  • num_attention_heads (int, необязательный, по умолчанию 16) — Количество головок внимания в каждом слое внимания декодера Transformer.
  • intermediate_size (int, необязательный, по умолчанию 4096) — Размерность представлений MLP.
  • activation_function (str, необязательный, по умолчанию gelu) — Нелинейная функция активации (функция или строка) в декодере. Например, "gelu", "relu", "silu" и т. д.
  • hidden_size (int, необязательный, по умолчанию 1024) — Размерность скрытых представлений.
  • dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент для всех слоёв dropout.
  • attention_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для вероятностей внимания.
  • activation_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для активаций внутри полносвязного слоя.
  • initializer_range (float, необязательный, по умолчанию 0.02) — Стандартное отклонение truncated_normal_initializer, используемое для инициализации всех матриц весов.
  • max_source_positions (int, необязательный, по умолчанию 1500) — Максимальная длина последовательности лог-мел-фильтр-банковых признаков, с которой может использоваться данная модель.

Это класс конфигурации для хранения конфигурации модели MossTranscribeDiarizeModel. Он используется для создания модели Moss Transcribe Diarize в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации hf-audio/MOSS-Transcribe-Diarize-HF

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> from transformers import MossTranscribeDiarizeAudioConfig, MossTranscribeDiarizeAudioModel

>>> # Initializing a MossTranscribeDiarizeAudioConfig
>>> configuration = MossTranscribeDiarizeAudioConfig()

>>> # Initializing a MossTranscribeDiarizeAudioModel (with random weights)
>>> model = MossTranscribeDiarizeAudioModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

MossTranscribeDiarizeAudioModel

класс transformers.MossTranscribeDiarizeAudioModel

< >

( config: MossTranscribeDiarizeAudioConfig )

Параметры

  • config (MossTranscribeDiarizeAudioConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Аудиомодель MOSS-Transcribe-Diarize, являющаяся энкодером Whisper.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_featuresattention_mask = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Параметры

  • input_features (torch.Tensor формы (batch_size, feature_size, sequence_length)) — Лог-меловые признаки, извлечённые из исходной речевой волны, по одной строке на каждое 30-секундное окно Whisper. См. call().
  • attention_mask (torch.Tensor, необязательный) — MossTranscribeDiarize не поддерживает маскирование input_features, этот аргумент сохранён для совместимости, но не используется.

Возвращает

BaseModelOutputWithPooling или tuple(torch.Tensor)

Объект BaseModelOutputWithPooling или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MossTranscribeDiarizeConfig) и входных данных.

Метод forward модели MossTranscribeDiarizeAudioModel переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.

  • pooler_output (torch.Tensor формы (batch_size, hidden_size)) — Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.

  • hidden_states (tuple(torch.Tensor), optional, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

MossTranscribeDiarizeFeatureExtractor

класс transformers.MossTranscribeDiarizeFeatureExtractor

< >

( feature_size = 80sampling_rate = 16000hop_length = 160chunk_length = 30n_fft = 400padding_value = 0.0dither = 0.0return_attention_mask = False**kwargs )

Создаёт экстрактор признаков MOSS-Transcribe-Diarize.

Это WhisperFeatureExtractor, который дополнительно разбивает аудио длительностью более chunk_length секунд на последовательные чанки Whisper-окна перед извлечением log-mel-фич и сообщает исходную длину сырого аудио для каждого сэмпла через padding_mask (в отличие от input_features_mask, который помечает валидные фреймы в каждом чанке).

__call__

< >

( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Truepad_to_multiple_of: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonesampling_rate: int | None = Nonedevice: str | None = 'cpu'**kwargs ) → BatchFeature

Параметры

  • raw_speech (np.ndarray, list[float], list[np.ndarray], list[list[float]]) — Последовательность или батч последовательностей для обработки. Только моно-аудио.
  • truncation (bool, необязательный, по умолчанию True) — Включает усечение, чтобы обрезать каждый фрагмент длиной n_samples до n_samples.
  • pad_to_multiple_of (int, необязательный) — Если задано, дополняет сырой аудиоданные каждого фрагмента до кратного этому значению.
  • device (str, необязательный, по умолчанию "cpu") — Устройство, используемое для вычисления лог-мел-спектрограммы.

Возвращает

BatchFeature

с input_features (лог-мел-фичи, одна строка на чанк), input_features_mask (маска валидных кадров для каждого чанка) и padding_mask (маска валидных сырых сэмплов, одна строка на входной сэмпл).

Разбивает каждый аудиоприбор на последовательные фрагменты длиной n_samples, извлекает log-mel-признаки для каждого фрагмента и сообщает исходную длину необработанного аудио каждого образца через padding_mask.

MossTranscribeDiarizeProcessor

класс transformers.MossTranscribeDiarizeProcessor

< >

( feature_extractor = Nonetokenizer = Nonechat_template: str | None = Noneaudio_token: str = '<|audio_pad|>'audio_bos_token: str = '<|audio_start|>'audio_eos_token: str = '<|audio_end|>'audio_tokens_per_second: float = 12.5audio_merge_size: int = 4time_marker_every_seconds: int = 2 )

Параметры

  • feature_extractor (MossTranscribeDiarizeFeatureExtractor) — Извлечение признаков является обязательным входом.
  • tokenizer (Qwen2Tokenizer) — Токенизатор является обязательным входным параметром.
  • chat_template (str, необязательный) — Шаблон Jinja для преобразования списков сообщений в чате в строку, готовую к токенизации.
  • audio_token (str, необязательный, по умолчанию "<|audio_pad|>") — Специальный токен, используемый для представления аудиовходов в шаблоне чата.
  • audio_bos_token (str, необязательный, по умолчанию "<|audio_start|>") — Специальный токен, отмечающий начало аудиосекции в шаблоне чата.
  • audio_eos_token (str, необязательный, по умолчанию "<|audio_end|>") — Специальный токен, отмечающий конец аудиосекции в шаблоне чата.
  • audio_tokens_per_second (float, необязательный, по умолчанию 12.5) — Ожидаемое количество токенов-заполнителей аудио на секунду входного аудио.
  • audio_merge_size (int, необязательный, по умолчанию 4) — коэффициент слияния кадров Whisper, используемый при подсчёте аудио-токенов.
  • time_marker_every_seconds (int, необязательный, по умолчанию 2) — Вставляет числовые токены-маркеры времени в аудиоспан каждые N секунд. Установите значение 0, чтобы отключить маркеры времени и вместо этого выдать обычный плейсхолдер аудиоспана.

Создаёт MossTranscribeDiarizeProcessor, который объединяет feature extractor и tokenizer в единый processor.

MossTranscribeDiarizeProcessor предоставляет все возможности MossTranscribeDiarizeFeatureExtractor и Qwen2Tokenizer. Подробнее см. в ~MossTranscribeDiarizeFeatureExtractor и ~Qwen2Tokenizer.

__call__

< >

( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.moss_transcribe_diarize.processing_moss_transcribe_diarize.MossTranscribeDiarizeProcessorKwargs'> ) → BatchFeature

Параметры

  • text (Union[str, list[str]]) — Последовательность или батч последовательностей для кодирования. Каждая последовательность может быть строкой или списком строк (предварительно токенизированная строка). Если вы передаёте предварительно токенизированный вход, установите is_split_into_words=True, чтобы избежать неоднозначности с батчами.
  • audio (Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]], необязательный) — Аудио или пакет аудио, подлежащий подготовке. Каждое аудио может быть массивом NumPy или тензором PyTorch. В случае массива NumPy/тензора PyTorch каждое аудио должно иметь форму (C, T), где C — количество каналов, а T — длина выборки аудио.
  • output_labels (bool, необязательный, по умолчанию=False) — Возвращать ли метки для обучения.
  • return_tensors (str или TensorType, необязательный) — Если задано, возвращает тензоры конкретного фреймворка. Допустимые значения:
    • 'pt': возвращает объекты torch.Tensor PyTorch.
    • 'np': возвращает объекты NumPy np.ndarray.
  • **kwargs (ProcessingKwargs, optional) — Дополнительные параметры обработки для каждой модальности (текст, изображения, видео, аудио). Специфичные для модели параметры перечислены выше; полный список поддерживаемых аргументов см. в классе TypedDict.

Возвращает

BatchFeature

Словарь с токенизированным текстом (input_ids, attention_mask) и аудио-признаками (input_values, padding_mask).

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]chat_template: str | None = Nonetools: list[dict] | None = Nonedocuments: list[dict[str, str]] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsereturn_assistant_tokens_mask: bool = Falsetokenize: bool = Falsereturn_tensors: str | transformers.utils.generic.TensorType | None = 'auto'return_dict: bool = Falseload_audio_from_video: bool = Falseprocessor_kwargs: dict | None = None**kwargs )

Параметры

  • conversation (Union[list[Dict, [str, str]], list[list[dict[str, str]]]]) — Диалог, который нужно отформатировать.
  • chat_template (Optional[str], необязательный) — Шаблон Jinja, используемый для форматирования диалога. Если не указан, используется шаблон чата токенизатора.

Аналогично методу apply_chat_template в токенизаторах, данный метод применяет шаблон Jinja к входным диалогам, чтобы преобразовать их в единую строку, готовую к токенизации.

Ожидается, что входные данные будут иметь следующий формат, где содержимое каждого сообщения представляет собой список, состоящий из текста и, при необходимости, изображений или видео. Также можно указать изображение, видео, URL или локальный путь, которые будут использованы для формирования pixel_values, если return_dict=True. Если эти данные не указаны, будет возвращён только отформатированный текст, а при необходимости — и токенизированный текст.

conversation = [ { “role”: “user”, “content”: [ {“type”: “image”, “url”: “https://www.ilankelman.org/stopsigns/australia.jpg”}, {“type”: “text”, “text”: “Please describe this image in detail.”}, ], }, ]

apply_transcription_request

< >

( audio: typing.Union[str, list[str], numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]prompt: str | list[str] | None = Nonekeywords: str | list[str] | list[list[str]] | None = Nonetranscription: str | list[str] | None = Nonetokenize: bool = True**kwargs: *<class 'transformers.models.moss_transcribe_diarize.processing_moss_transcribe_diarize.MossTranscribeDiarizeProcessorKwargs'> )

Параметры

  • audio (str, list[str], np.ndarray, torch.Tensor, list[np.ndarray], list[torch.Tensor]) — Аудио для транскрибации. Строки интерпретируются как локальные пути или URL и автоматически загружаются загрузчиком шаблона чата; массивы NumPy и тензоры PyTorch передаются напрямую.
  • prompt (str или list[str], необязательный) — Пользовательский промпт(ы) для включения в пользовательский ход. Список должен иметь ту же длину, что и батч. Если None, шаблон чата предоставляет промпт по умолчанию с меткой времени для диаризации.
  • keywords (str, list[str] или list[list[str]], необязательный) — Горячие слова или термины предметной области (например, имена собственные), которые смещают транскрипцию в сторону правильного написания. Строка или плоский список строк используется для всей партии; вложенный список задаёт отдельные ключевые слова для каждого аудиофрагмента.
  • transcription (str или list[str], необязательный) — Целевая транскрипция (или несколько) для обучения, по одной на каждый аудиофайл, в формате вывода модели (например, "[0.00][S01] Hello world.[1.20]"). Если указано, каждая транскрипция записывается как реплика ассистента, и возвращаются labels (см. output_labels в call()).
  • tokenize (bool, необязательный, по умолчанию True) — Определяет, следует ли токенизировать промпты и обрабатывать аудио. Если False, аудио не загружается, а промпты возвращаются в виде строк с неразвёрнутыми плейсхолдерами аудио. Передача их вместе с аудио в процессор, processor(text=prompts, audio=audio), даёт те же результаты, что и tokenize=True.
  • **kwargs — Дополнительные именованные аргументы, передаваемые в apply_chat_template(). Аргументы процессора (например, text_kwargs, audio_kwargs, …) следует передавать как processor_kwargs={...}.

Подготовьте входные данные для транскрипции / диаризации без ручного написания шаблона чата, как для инференса, так и для обучения, если задан transcription.

MossTranscribeDiarizeModel

класс transformers.MossTranscribeDiarizeModel

< >

( config: MossTranscribeDiarizeConfig )

Параметры

  • config (MossTranscribeDiarizeConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель MOSS-Transcribe-Diarize: энкодер Whisper, слияние по времени 4x, мультимодальный проектор и языковая модель Qwen3.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MossTranscribeDiarizeModelOutputWithPast or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • input_features (torch.Tensor формы (batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью MossTranscribeDiarizeFeatureExtractor. Подробности см. в MossTranscribeDiarizeFeatureExtractor.call() (MossTranscribeDiarizeProcessor использует MossTranscribeDiarizeFeatureExtractor для обработки аудио).
  • input_features_mask (torch.Tensor формы (num_chunks, feature_sequence_length), необязательный) — Маска, отмечающая действительные (не заполняющие) индексы признаков; одна строка на каждую строку лог-мел-признаков, разбитую на чанки, в input_features. Используется для вычисления действительной длины вывода энкодера для каждого чанка.
  • attention_mask (torch.Tensor формы (batch_size, sequence_length), необязательный) — Маска для исключения внимания к индексам токенов-заполнителей. Передаётся в языковую модель без изменений.
  • inputs_embeds (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Предварительно вычисленные эмбеддинги, используемые вместо передачи input_ids. Если также задан input_features, input_ids всё равно требуется, чтобы определить позиции аудио-заполнителей в inputs_embeds и заполнить их аудио-эмбеддингами.
  • padding_mask (torch.Tensor формы (batch_size, max_audio_length), необязательный) — Маска, отмечающая действительную длину сырых аудиоданных для каждого аудиообразца. Используется вместе с config.audio_chunk_size для восстановления audio_chunk_mapping.

Возвращает

MossTranscribeDiarizeModelOutputWithPast или tuple(torch.Tensor)

MossTranscribeDiarizeModelOutputWithPast или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MossTranscribeDiarizeConfig) и входных данных.

Метод forward модели MossTranscribeDiarizeModel переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.

    Если используется past_key_values, выводится только последнее скрытое состояние последовательностей формы (batch_size, 1, hidden_size).

  • past_key_values (Cache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и, при необходимости, если config.is_encoder_decoder=True, в блоках кросс-внимания), которые можно использовать (см. входной параметр past_key_values) для ускорения последовательного декодирования.

  • hidden_states (tuple(torch.Tensor), optional, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • audio_hidden_states (torch.Tensor, необязательный) — Спроецированные скрытые состояния аудио.

get_audio_features

< >

( input_features: Tensorinput_features_mask: Tensorpadding_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

Параметры

  • input_features (torch.Tensor формы (batch_size, sequence_length, feature_dim)) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью MossTranscribeDiarizeFeatureExtractor. Подробности см. в MossTranscribeDiarizeFeatureExtractor.call() (MossTranscribeDiarizeProcessor использует MossTranscribeDiarizeFeatureExtractor для обработки аудио).
  • input_features_mask (torch.Tensor формы (num_chunks, feature_sequence_length)) — Маска, отмечающая действительные (не заполняющие) индексы признаков; одна строка на каждую строку лог-мел-признаков, разбитую на чанки, в input_features. Используется для вычисления действительной длины выходных данных энкодера для каждого чанка.
  • padding_mask (torch.Tensor формы (batch_size, max_audio_length)) — Маска, отмечающая действительную длину каждого аудиофрагмента, по одной строке на фрагмент. Используется вместе с config.audio_chunk_size для восстановления audio_chunk_mapping.

Возвращает

BaseModelOutputWithPooling или tuple(torch.Tensor)

Объект BaseModelOutputWithPooling или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MossTranscribeDiarizeConfig) и входных данных.

Извлечение аудио-эмбеддингов MOSS из log-mel-фич с последующей сборкой аудио из нескольких чанков для каждого образца.

  • last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.

  • pooler_output (torch.Tensor формы (batch_size, hidden_size)) — Скрытое состояние последнего слоя для первого токена последовательности (токен классификации) после дополнительной обработки слоями, используемыми для вспомогательной задачи предварительного обучения. Например, для моделей семейства BERT это возвращает токен классификации после обработки линейным слоем и функцией активации tanh. Веса линейного слоя обучаются по задаче предсказания следующего предложения (классификации) во время предварительного обучения.

  • hidden_states (tuple(torch.Tensor), optional, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

MossTranscribeDiarizeForConditionalGeneration

класс transformers.MossTranscribeDiarizeForConditionalGeneration

< >

( config: MossTranscribeDiarizeConfig )

Параметры

  • config (MossTranscribeDiarizeConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация по файлу конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Модель MOSS-Transcribe-Diarize для условной генерации с транскрипцией и диаризацией говорящих.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneinput_features: typing.Optional[torch.Tensor] = Noneinput_features_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0padding_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MossTranscribeDiarizeCausalLMOutputWithPast or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • input_features (torch.Tensor формы (batch_size, sequence_length, feature_dim), необязательный) — Тензоры, соответствующие входным аудиособытиям. Аудиособытия можно получить с помощью MossTranscribeDiarizeFeatureExtractor. Подробности см. в MossTranscribeDiarizeFeatureExtractor.call() (MossTranscribeDiarizeProcessor использует MossTranscribeDiarizeFeatureExtractor для обработки аудио).
  • input_features_mask (torch.Tensor формы (num_chunks, feature_sequence_length), необязательный) — Маска, отмечающая действительные (не заполняющие) индексы признаков; одна строка на каждую строку лог-мел-признаков, разбитую на чанки, в input_features. Используется для вычисления действительной длины вывода энкодера для каждого чанка.
  • attention_mask (torch.Tensor формы (batch_size, sequence_length), необязательный) — Маска для исключения внимания к индексам токенов-заполнителей. Передаётся в языковую модель без изменений.
  • past_key_values (~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.use_cache=True.

    В качестве входного параметра допускается только экземпляр Cache, см. наше руководство по кэшу KV. Если past_key_values не переданы, по умолчанию будет инициализирован DynamicCache.

    Модель будет выводить тот же формат кэша, который был передан на вход.

    Если используются past_key_values, ожидается, что пользователь передаст только необработанные input_ids (те, для которых в этой модели ещё не заданы состояния прошлых ключей и значений) формы (batch_size, unprocessed_length), а не все input_ids формы (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Предварительно вычисленные эмбеддинги, используемые вместо передачи input_ids. Если также задан input_features, input_ids всё равно требуется, чтобы определить позиции аудио-заполнителей в inputs_embeds и заполнить их аудио-эмбеддингами.
  • labels (torch.LongTensor формы (batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования.
  • logits_to_keep (Union[int, torch.Tensor], необязательный, по умолчанию 0) — Если передано значение типа int, вычисляет logits для последних logits_to_keep токенов. Если указано 0, logits вычисляются для всех input_ids (особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типа torch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности).
  • padding_mask (torch.Tensor формы (batch_size, max_audio_length), необязательный) — Маска, отмечающая действительную длину сырых аудиоданных для каждого аудиообразца. Используется вместе с config.audio_chunk_size для восстановления audio_chunk_mapping.

Возвращает

MossTranscribeDiarizeCausalLMOutputWithPast или tuple(torch.Tensor)

MossTranscribeDiarizeCausalLMOutputWithPast или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (MossTranscribeDiarizeConfig) и входных данных.

Метод MossTranscribeDiarizeForConditionalGeneration forward переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (1,), необязательный, возвращается, если задан labels) — Потери языковой модели (для предсказания следующего токена).

  • logits (torch.Tensor формы (batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели.

  • past_key_values (Cache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр Cache.

  • hidden_states (tuple[torch.Tensor], необязательный, возвращается при передаче output_hidden_states=True или когда config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

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

  • attentions (tuple[torch.Tensor], необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • audio_hidden_states (torch.Tensor, необязательный) — Скрытые состояния аудио-кодера после проекции.

Пример:

>>> from transformers import MossTranscribeDiarizeForConditionalGeneration, AutoProcessor

>>> model_id = "hf-audio/MOSS-Transcribe-Diarize-HF"
>>> processor = AutoProcessor.from_pretrained(model_id)
>>> model = MossTranscribeDiarizeForConditionalGeneration.from_pretrained(model_id, device_map="auto")
>>> inputs = processor.apply_transcription_request("https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/bcn_weather.mp3")
>>> inputs = inputs.to(model.device, dtype=model.dtype)
>>> outputs = model.generate(**inputs, do_sample=False, max_new_tokens=500)
>>> processor.batch_decode(outputs[:, inputs.input_ids.shape[1] :], skip_special_tokens=True)

get_audio_features

< >

( input_featuresinput_features_mask**kwargs )

Update on GitHub