Transformers documentation
Qwen3 ASR
Bu model 2026-01-29 tarihinde HF papers'ta yayımlandı ve 2026-06-26 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
Qwen3 ASR
Genel Bakış
Qwen3 ASR, Alibaba'nın Qwen ekibinden, Whisper tarzı bir ses kodlayıcıyı Qwen3 dil modeli çözücüyle birleştiren ve konuşmadan metne transkripsiyon için kullanılan otomatik konuşma tanıma modelidir. Model, otomatik dil algılama ve çok dilli transkripsiyon destekler.
Zorunlu hizalayıcı (forced aligner) modeli de dahildir. Sağlanan bir transkriptin ve sesinin zaman damgasını almak için kullanılabilir. Aynı ses kodlayıcı modelini, bir kelimenin uzunluğunu tahmin eden bir sınıflandırma başlığıyla kullanır. Bu model, herhangi bir ASR modelinin transkriptiyle kullanılabilir (aşağıdaki Parakeet CTC örneğine bakınız).
Mevcut denetim noktaları:
Desteklenen diller şunlardır:
Qwen3-ASR-1.7BveQwen3-ASR-0.6B: Çince (zh), İngilizce (en), Kantonca (yue), Arapça (ar), Almanca (de), Fransızca (fr), İspanyolca (es), Portekizce (pt), Endonezce (id), İtalyanca (it), Korece (ko), Rusça (ru), Tayca (th), Vietnamca (vi), Japonca (ja), Türkçe (tr), Hintçe (hi), Malayca (ms), Felemenkçe (nl), İsveççe (sv), Danca (da), Fince (fi), Lehçe (pl), Çekçe (cs), Filipince (fil), Farsça (fa), Yunanca (el), Macarca (hu), Makedonca (mk), Romence (ro).Qwen3-ForcedAligner-0.6B: Çince (zh), İngilizce (en), Kantonca (yue), Fransızca (fr), Almanca (de), İtalyanca (it), Japonca (ja), Korece (ko), Portekizce (pt), Rusça (ru), İspanyolca (es).
Daha fazla ayrıntı için QwenLM/Qwen3-ASR adresindeki orijinal depoyu ve raporu inceleyin.
Bu model Eric Bezzam ve Muhammed Tariq tarafından katkıda bulunmuştur.
Kullanım
Basit transkripsiyon
Ses transkripsiyonu için en basit yöntem, sohbet şablonu biçimlendirmesini sizin için halleden apply_transcription_request işlevini kullanmaktır; bu işlev, apply_chat_template için bir kolaylık sarmalayıcısıdır (aşağıdaki Sohbet şablonu bölümüne bakın).
from transformers import AutoProcessor, AutoModelForMultimodalLM
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
print(f"Model loaded on {model.device} with dtype {model.dtype}")
inputs = processor.apply_transcription_request(
audio="https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
# Raw output includes language tag and <asr_text> marker
raw = processor.decode(generated_ids)[0]
print(f"Raw: {raw}")
# Parsed output: dict with "language" and "transcription"
parsed = processor.decode(generated_ids, return_format="parsed")[0]
print(f"Parsed: {parsed}")
# Extract only the transcription text
transcription = processor.decode(generated_ids, return_format="transcription_only")[0]
print(f"Transcription: {transcription}")
"""
Raw: language English<asr_text>Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.
Parsed: {'language': 'English', 'transcription': 'Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.'}
Transcription: Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.
"""Dili zorlama
Aşağıda gösterildiği gibi transkripsiyon dilini zorlayabilirsiniz.
from transformers import AutoProcessor, AutoModelForMultimodalLM
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
# Without language hint (auto-detect)
inputs = processor.apply_transcription_request(
audio="https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
print(f"Auto-detect: {processor.decode(generated_ids, return_format='transcription_only')[0]}")
# With forced language
inputs = processor.apply_transcription_request(
audio="https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
language="Chinese", # or language code "zh"
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
print(f"Forced: {processor.decode(generated_ids, return_format='transcription_only')[0]}")Bağlam / sıcak kelimeler
prompt üzerinden serbest biçimli bağlam (ör. alanına özgü terminoloji, isimler veya arka plan bilgisi) ileterek transkripsiyonu yönlendirebilirsiniz.
from transformers import AutoProcessor, AutoModelForMultimodalLM
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
inputs = processor.apply_transcription_request(
audio="https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
prompt="Vocabulary: Quilter, apostle, gospel.",
language="English",
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
print(processor.decode(generated_ids, return_format="transcription_only")[0])Toplu çıkarım
Batch inference, seslerin bir listesini ve varsa dillerin ve/veya istemlerin bir listesini geçirerek yapılabilir.
from transformers import AutoProcessor, AutoModelForMultimodalLM
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
audio = [
"https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
"https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
]
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
inputs = processor.apply_transcription_request(
audio,
prompt=["Vocabulary: Quilter, apostle, gospel.", None],
language=[None, "zh"], # language codes ("zh") and full names ("Chinese") are both accepted
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
transcriptions = processor.decode(generated_ids, return_format="transcription_only")
for i, text in enumerate(transcriptions):
print(f"Audio {i + 1}: {text}")Sohbet şablonu
Qwen3 ASR, sohbet şablonu girdilerini de kabul eder. Yukarıdaki apply_transcription_request kullanımı, apply_chat_template için bir kolaylık sarmalayıcısıdır.
Dil, asistan turunu language <NAME><asr_text> ile önden doldurarak ve continue_final_message=True parametresini geçirerek sohbet şablonu üzerinden zorlanabilir; apply_transcription_request fonksiyonu da arka planda bunu yapar. Dikkat edin, dil zorlanıyorsa bir partideki tüm sesler için bir önden doldurma ayarlanmalıdır (aşağıda gösterildiği gibi).
from transformers import AutoProcessor, Qwen3ASRForConditionalGeneration
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3ASRForConditionalGeneration.from_pretrained(model_id, device_map="auto")
chat_template = [
[
# Context/hotwords as system message
{"role": "system", "content": [{"type": "text", "text": "Vocabulary: Quilter, apostle, gospel."}]},
{
"role": "user",
"content": [
{
"type": "audio",
"path": "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
},
],
},
# empty prefill since forcing language in the other sample
{"role": "assistant", "content": [{"type": "text", "text": ""}]},
],
[
{
"role": "user",
"content": [
{
"type": "audio",
"path": "https://huggingface.co/datasets/hf-internal-testing/dummy-audio-samples/resolve/main/mandarin_voxcpm_zh.wav",
},
],
},
{"role": "assistant", "content": [{"type": "text", "text": "language Chinese<asr_text>"}]},
],
]
inputs = processor.apply_chat_template(
chat_template, tokenize=True, return_dict=True, continue_final_message=True,
).to(model.device, model.dtype)
output_ids = model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
transcriptions = processor.decode(generated_ids, return_format="transcription_only")
for text in transcriptions:
print(text)Eğitim
Qwen3 ASR, modelin ürettiği kayıpla eğitilebilir. Hedef transkripti asistan turuna yerleştirin — önceden eğitilmiş davranışı korumak için modelin çıktı biçimi olan language <NAME><asr_text>... biçimini kullanın — ve output_labels=True parametresini iletin. Ses ve dolgu (padding) konumları otomatik olarak maskeleme (masking) işlemine tabi tutulur.
from transformers import AutoProcessor, Qwen3ASRForConditionalGeneration
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3ASRForConditionalGeneration.from_pretrained(model_id, device_map="auto")
model.train()
transcript = "Mr. Quilter is the apostle of the middle classes, and we are glad to welcome his gospel."
conversation = [
[
{
"role": "user",
"content": [
{
"type": "audio",
"path": "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
},
],
},
{"role": "assistant", "content": [{"type": "text", "text": f"language English<asr_text>{transcript}"}]},
],
]
inputs = processor.apply_chat_template(
conversation, tokenize=True, return_dict=True, processor_kwargs={"output_labels": True},
).to(model.device, model.dtype)
loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()Zorunlu hizalama (kelime düzeyinde zaman damgalama)
Qwen3ASRForTokenClassification sınıfını kullanarak bir transkriptten kelime düzeyinde zaman damgaları elde edin. Önce ASR modeliyle transkripsiyon yapın, ardından zorlamalı hizalayıcıyla hizalayın.
Desteklenen diller şunlardır: Çince (zh), İngilizce (en), Kantonca (yue), Fransızca (fr), Almanca (de), İtalyanca (it), Japonca (ja), Korece (ko), Portekizce (pt), Rusça (ru), İspanyolca (es).
Japonca için nagisa kütüphanesi, Korece için ise soynlp kütüphanesi gereklidir:
pip install nagisa soynlpQwen3 ASR ile
import torch
from transformers import AutoProcessor, AutoModelForMultimodalLM, AutoModelForTokenClassification
asr_model_id = "Qwen/Qwen3-ASR-0.6B-hf"
aligner_model_id = "Qwen/Qwen3-ForcedAligner-0.6B-hf"
asr_processor = AutoProcessor.from_pretrained(asr_model_id)
asr_model = AutoModelForMultimodalLM.from_pretrained(asr_model_id, device_map="auto")
aligner_processor = AutoProcessor.from_pretrained(aligner_model_id)
aligner_model = AutoModelForTokenClassification.from_pretrained(
aligner_model_id, dtype=torch.bfloat16, device_map="auto"
)
audio_url = "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav"
# Step 1: Transcribe
inputs = asr_processor.apply_transcription_request(audio=audio_url)
inputs = inputs.to(asr_model.device, asr_model.dtype)
output_ids = asr_model.generate(**inputs, max_new_tokens=256)
generated_ids = output_ids[:, inputs["input_ids"].shape[1]:]
parsed = asr_processor.decode(generated_ids, return_format="parsed")[0]
transcript = parsed["transcription"]
language = parsed["language"] or "English"
# Step 2: Prepare alignment inputs
aligner_inputs, word_lists = aligner_processor.prepare_forced_aligner_inputs(
audio=audio_url, transcript=transcript, language=language,
)
aligner_inputs = aligner_inputs.to(aligner_model.device, aligner_model.dtype)
# Step 3: Run forced aligner
with torch.inference_mode():
outputs = aligner_model(**aligner_inputs)
# Step 4: Decode timestamps
timestamps = aligner_processor.decode_forced_alignment(
logits=outputs.logits,
input_ids=aligner_inputs["input_ids"],
word_lists=word_lists,
timestamp_token_id=aligner_model.config.timestamp_token_id,
)[0]
for item in timestamps:
print(f"{item['text']:<20} {item['start_time']:>8.3f}s → {item['end_time']:>8.3f}s")
"""
Word Start (s) End (s)
------------------------------------------
Mr 0.560 0.800
Quilter 0.800 1.280
is 1.280 1.440
the 1.440 1.520
apostle 1.520 2.080
...
"""Başka bir ASR modeliyle
Zorunlu hizalayıcı model bağımsızdır; bu, herhangi bir ASR sisteminden gelen transkriptlerin sağlanabileceği anlamına gelir. Aşağıda, transkripsiyon için NVIDIA Parakeet CTC kullanan bir toplu çıkarım örneği verilmiştir.
import torch
from datasets import Audio, load_dataset
from transformers import AutoModelForCTC, AutoProcessor, AutoModelForTokenClassification
parakeet_processor = AutoProcessor.from_pretrained("nvidia/parakeet-ctc-1.1b")
parakeet_model = AutoModelForCTC.from_pretrained(
"nvidia/parakeet-ctc-1.1b", dtype="auto", device_map="auto",
)
aligner_model_id = "Qwen/Qwen3-ForcedAligner-0.6B-hf"
aligner_processor = AutoProcessor.from_pretrained(aligner_model_id)
aligner_model = AutoModelForTokenClassification.from_pretrained(
aligner_model_id, dtype=torch.bfloat16, device_map="auto",
)
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=parakeet_processor.feature_extractor.sampling_rate))
audio_arrays = [ds[i]["audio"]["array"] for i in range(3)]
sr = ds[0]["audio"]["sampling_rate"]
# Batch transcribe with Parakeet
inputs = parakeet_processor(audio_arrays, sampling_rate=sr, return_tensors="pt", padding=True).to(
parakeet_model.device, dtype=parakeet_model.dtype
)
with torch.inference_mode():
outputs = parakeet_model.generate(**inputs)
transcripts = parakeet_processor.decode(outputs)
# Batch align with Qwen3 Forced Aligner
aligner_inputs, word_lists = aligner_processor.prepare_forced_aligner_inputs(
audio=audio_arrays, transcript=transcripts, language="English",
)
aligner_inputs = aligner_inputs.to(aligner_model.device, aligner_model.dtype)
with torch.inference_mode():
aligner_outputs = aligner_model(**aligner_inputs)
batch_timestamps = aligner_processor.decode_forced_alignment(
logits=aligner_outputs.logits,
input_ids=aligner_inputs["input_ids"],
word_lists=word_lists,
timestamp_token_id=aligner_model.config.timestamp_token_id,
)
for i, (transcript, timestamps) in enumerate(zip(transcripts, batch_timestamps)):
print(f"\n[Sample {i}] {transcript}")
for item in timestamps[:5]:
print(f" {item['text']:<20} {item['start_time']:>8.3f}s → {item['end_time']:>8.3f}s")
if len(timestamps) > 5:
print(f" ... ({len(timestamps) - 5} more words)")Torch derleme
Hem ASR hem de zorlanmış hizalayıcı modeller, daha hızlı çıkarım için torch.compile desteği sunar. Zorlanmış hizalayıcı, tek bir ileri geçiş çalıştırdığı için (otoregresif çözümleme yok) derleme için özellikle uygundur. Bu durum, onu toplu ses zaman damgalama için ideal kılar: herhangi bir ASR modeliyle transkripsiyon yapın, ardından maksimum verimlilik için derlenmiş zorlanmış hizalayıcıyla toplu hizalama uygulayın.
Zorlanmış hizalayıcı
A100 üzerinde, 4'lük bir batch boyutu için ~1.2 hızlanma gözlemledik (script).
import torch
from transformers import AutoProcessor, AutoModelForTokenClassification
model_id = "Qwen/Qwen3-ForcedAligner-0.6B-hf"
num_warmup = 5
batch_size = 4
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForTokenClassification.from_pretrained(model_id, dtype=torch.bfloat16).to("cuda")
# Prepare a batch of 4 samples
audio_url = "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav"
transcript = "Mr. Quilter is the apostle of the middle classes."
aligner_inputs, word_lists = processor.prepare_forced_aligner_inputs(
audio=[audio_url] * batch_size,
transcript=[transcript] * batch_size,
language=["English"] * batch_size,
)
aligner_inputs = aligner_inputs.to(model.device, torch.bfloat16)
# Warm-up and apply model
model = torch.compile(model)
with torch.no_grad():
for _ in range(num_warmup):
_ = model(**aligner_inputs)
with torch.no_grad():
_ = model(**aligner_inputs)ASR modeli (generate)
Otonom regresif transkripsiyonda, torch.compile, CompileConfig nesnesi sağlandığında generate ayarındaki token başına ileri geçişleri hızlandırır.
A100 üzerinde, 4'lük bir parti boyutu için ~3.8 hızlanma gözlemledik (script).
import torch
from transformers import AutoProcessor, AutoModelForMultimodalLM, CompileConfig
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
num_warmup = 3
max_new_tokens = 256
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, dtype=torch.bfloat16).to("cuda").eval()
audio_url = "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav"
inputs = processor.apply_transcription_request(
audio=[audio_url] * 4, # batch of 4
).to(model.device, torch.bfloat16)
compile_config = CompileConfig()
# Warmup
with torch.inference_mode():
for _ in range(num_warmup):
_ = model.generate(
**inputs, max_new_tokens=max_new_tokens, do_sample=False,
cache_implementation="static", compile_config=compile_config,
)
torch.cuda.synchronize()
# Apply model
with torch.inference_mode():
output_ids = model.generate(
**inputs, max_new_tokens=max_new_tokens, do_sample=False,
cache_implementation="static", compile_config=compile_config,
)
generated_ids = output_ids[:, inputs["input_ids"].shape[1] :]
text_compiled = processor.decode(generated_ids, return_format="transcription_only")[0]
print(f"Output: {text_compiled}")Pipeline kullanımı
from transformers import pipeline
model_id = "Qwen/Qwen3-ASR-1.7B-hf"
pipe = pipeline("any-to-any", model=model_id, device_map="auto")
chat_template = [
{
"role": "user",
"content": [
{
"type": "audio",
"path": "https://huggingface.co/datasets/bezzam/audio_samples/resolve/main/librispeech_mr_quilter.wav",
},
],
}
]
outputs = pipe(text=chat_template, return_full_text=False)
raw_text = outputs[0]["generated_text"]
print(f"Raw: {raw_text}")
# Use processor helper to extract transcription
transcription = pipe.processor.extract_transcription(raw_text)
print(f"Transcription: {transcription}")Qwen3ASRConfig
sınıf transformers.Qwen3ASRConfig
< source >( 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 = 151676timestamp_token_id: int = 151705pad_token_id: int = 151645eos_token_id: list[int] | tuple[int, ...] | int = (151643, 151645)initializer_range: float = 0.02tie_word_embeddings: bool = Truetoken_classification_bias: bool = False )
Parametreler
- audio_config (Union[dict, ~configuration_utils.PreTrainedConfig], opsiyonel) — Ses omurgasının yapılandırma nesnesi veya sözlüğü.
- text_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü.
- audio_token_id (int, opsiyonel, varsayılan 151676) — Ses istemini kodlamak için kullanılacak ses token kimliği.
- timestamp_token_id (int, opsiyonel, varsayılan 151705) —
Tokenizör sözlüğündeki
<timestamp>işaretçisinin token kimliği. Bu işaretçiler, zorlama hizalama giriş dizisinde kelime sınırlarını belirler. - pad_token_id (int, opsiyonel, varsayılan 151645) — Sözlükte dolgu için kullanılan token kimliği.
- eos_token_id (Union[list[int], tuple[int, …], int], isteğe bağlı, varsayılan (151643, 151645)) — Sözlükte akış sonu için kullanılan token kimliği.
- initializer_range (float, opsiyonel, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
- tie_word_embeddings (bool, opsiyonel, varsayılan True) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
- token_classification_bias (bool, opsiyonel, varsayılan değeri False) — Zorunlu hizalama için token sınıflandırma başlığının bir sapma (bias) terimi içermesi gerekip gerekmediğini belirtir.
Bu, bir Qwen3ASRModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qwen3 Asr modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Qwen/Qwen3-ASR-1.7B-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Configuration nesneleri [PreTrainedConfig] sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig] belgesini okuyun.
Örnek:
>>> from transformers import Qwen3ASRForConditionalGeneration, Qwen3ASRConfig
>>> # Initializing a Qwen3ASR style configuration
>>> configuration = Qwen3ASRConfig()
>>> # Initializing a model from the configuration
>>> model = Qwen3ASRForConditionalGeneration(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configQwen3ASREncoderConfig
sınıf transformers.Qwen3ASREncoderConfig
< source >( 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 = 128encoder_layers: int = 24encoder_attention_heads: int = 16encoder_ffn_dim: int = 4096d_model: int = 1024dropout: float | int = 0.0attention_dropout: float | int = 0.0activation_function: str = 'gelu'activation_dropout: float | int = 0.0scale_embedding: bool = Falseinitializer_range: float = 0.02n_window: int = 50output_dim: int = 3584n_window_infer: int = 800downsample_hidden_size: int = 480max_position_embeddings: int = 13 )
Parametreler
- num_mel_bins (int, opsiyonel, varsayılan 128) — Giriş başına kullanılan mel özellik sayısı. AutoFeatureExtractor sınıfında kullanılan değerle eşleşmelidir.
- encoder_layers (int, opsiyonel, varsayılan 24) — Transformer kodlayıcısındaki gizli katman sayısı. Ayarlanmazsa num_layers ile aynı değeri kullanır.
- encoder_attention_heads (int, opsiyonel, varsayılan 16) — Transformer kodlayıcısındaki her dikkat katmanı için dikkat başı sayısı.
- encoder_ffn_dim (int, opsiyonel, varsayılan 4096) — Encoder'daki "ara" (genellikle feed-forward olarak adlandırılan) katmanın boyutluluğu.
- d_model (int, opsiyonel, varsayılan 1024) — Kodlayıcı katmanlarının ve pooler katmanının boyutu.
- dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Tüm dropout katmanları için oran.
- attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
- activation_function (str, optional, varsayılan gelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, “gelu”, “relu”, “silu” vb.
- activation_dropout (Union[float, int], opsiyonel, varsayılan 0.0) — Tamamen bağlı katmandaki aktivasyonlar için dropout oranı.
- scale_embedding (bool, isteğe bağlı, varsayılan False) — Gömme değerlerinin sqrt(d_model) ile bölünerek ölçeklendirilip ölçeklendirilmeyeceğini belirtir.
- initializer_range (float, opsiyonel, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
- n_window (int, opsiyonel, varsayılan 50) —
Tek bir kodlayıcı parçasındaki mel çerçeve sayısının yarısı. Conv yığını tarafından işlenen her parça
2 * n_windowmel çerçevesi içerir (10 ms atlama ile 16 kHz'de 1 saniyelik ses). - output_dim (int, opsiyonel, varsayılan 3584) — Çıktının boyutu.
- n_window_infer (int, opsiyonel, varsayılan 800) —
Her dikkat penceresinin kapsadığı sesin mel çerçevesi sayısı. Dikkat pencerelerinin kodlayıcı parçalarıyla hizalanması için
n_window * 2'nin katı olmalıdır. - downsample_hidden_size (int, opsiyonel, varsayılan 480) — Konvolüsyonlu alt örnekleme yığınının gizli boyutu.
- max_position_embeddings (int, isteğe bağlı, varsayılan 13) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
Bu, bir Qwen3ASRModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qwen3 Asr modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, Qwen/Qwen3-ASR-1.7B-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Configuration nesneleri [PreTrainedConfig] sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için [PreTrainedConfig] belgesini okuyun.
Qwen3ASRFeatureExtractor
sınıf transformers.Qwen3ASRFeatureExtractor
< source >( feature_size = 128sampling_rate = 16000hop_length = 160chunk_length = 30n_fft = 400padding_value = 0.0dither = 0.0return_attention_mask = Truen_window = 50min_length = 8000**kwargs )
Parametreler
- feature_size (int, opsiyonel, varsayılan 128) — Mel filtre bankalarının sayısı.
- sampling_rate (int, isteğe bağlı, varsayılan 16000) — Hz cinsinden ses örneklem hızı.
- hop_length (int, opsiyonel, varsayılan 160) — Mel Frekans katsayılarını elde etmek için kullanılan STFT'de üst üste binen pencerelerin uzunluğu.
- chunk_length (int, opsiyonel, varsayılan 30) —
padding="max_length"kullanıldığında kırpma/doldurma için kullanılan maksimum ses uzunluğu (saniye cinsinden). - n_fft (int, opsiyonel, varsayılan 400) — Fourier dönüşümünün boyutu.
- padding_value (float, opsiyonel, varsayılan 0.0) — Ham sesin dolgu işlemi için kullanılan dolgu değeri.
- dither (float, opsiyonel, varsayılan 0.0) — Sıfır dışı bir değer verilirse, her STFT çerçevesine Gauss gürültüsü (std = dither) eklenir.
- return_attention_mask (bool, opsiyonel, varsayılan True) — Dolgulu mel çerçevelerine karşılık gelen dikkat maskesinin döndürülüp döndürülmeyeceği.
- n_window (int, isteğe bağlı, varsayılan 50) —
Doldurma için kullanılan mel çerçevesi parça boyutunun yarısı. Log-mel zaman ekseni,
2 * n_window'ün katı olacak şekilde sağdan doldurulur. - min_length (int, isteğe bağlı, varsayılan 8000) — Her ses klipleri için minimum örnek sayısı. Bu değerin altındaki klipler, orijinal Qwen3-ASR kütüphanesi davranışına uygun olarak sıfır dolgusu ile tamamlanır.
Bir Qwen3 ASR özellik çıkarıcısı oluşturur.
Ham konuşmadan 128 bini log-mel özellikleri çıkarır, ardından mel zaman eksenini 2 * n_window'nin katına sağdan doldurur.
__call__
< source >( raw_speech: numpy.ndarray | list[float] | list[numpy.ndarray] | list[list[float]]truncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_tensors: str | None = 'pt'return_attention_mask: bool | None = Nonepadding: str | None = 'max_length'max_length: int | None = Nonesampling_rate: int | None = Nonen_window: int | None = Nonedevice: str | None = 'cpu'**kwargs )
Parametreler
- raw_speech (np.ndarray, list[float], list[np.ndarray], list[list[float]]) — Doldurulacak (padding) dizi veya dizi grubu. Yalnızca tek kanallı ses.
- pad_to_multiple_of (int, optional) —
Belirlenirse, ham ses bu değerin katına (örnek cinsinden) doldurulur.
n_window'den ayrıdır; bu değer mel çerçeve eksenine uygulanır. - n_window (int, opsiyonel) —
Bu çağrı için örneğin
n_windowdeğerini geçersiz kılar. Mel ekseni,2 * n_window'nun katına tamamlanır. Mel ekseni dolgusunu tamamen atlamak için0olarak ayarlayın. - device (str, opsiyonel, varsayılan “cpu”) — Log-mel spektrogramu hesaplamak için kullanılan cihaz.
Bir veya birden fazla ses dizisinden log-mel özellikleri hazırlar.
Qwen3ASRProcessor
sınıf transformers.Qwen3ASRProcessor
< source >( feature_extractor = Nonetokenizer = Nonechat_template = Nonetimestamp_segment_time: float = 80 )
Parametreler
- feature_extractor (
Qwen3ASRFeatureExtractor) — Özellik çıkarıcı zorunlu bir girdidir. - tokenizer (
Qwen2Tokenizer) — Tokenizer zorunlu bir girdidir. - chat_template (
str) — Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir dizeye dönüştürmek için kullanılan bir Jinja şablonu. - timestamp_segment_time (
float, isteğe bağlı) — Zaman damgası sınıfı başına milisaniye. Varsayılan değer 80 ms'tir.
Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir Qwen3ASRProcessor oluşturur.
Qwen3ASRProcessor, Qwen3ASRFeatureExtractor ve Qwen2Tokenizer sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~Qwen3ASRFeatureExtractor ve ~Qwen2Tokenizer belgelerine bakın.
__call__
< source >( text: str | list[str]audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]output_labels: bool | None = False**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → BatchFeature
Parametreler
- text (
Union[str, list[str]]) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek içinis_split_into_words=Truedeğerini ayarlayın. - audio (
Union[numpy.ndarray, torch.Tensor, collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence[torch.Tensor]]) — Hazırlanacak ses veya sesler partisi. Her ses, bir NumPy dizisi veya PyTorch tensörü olabilir. NumPy dizisi/PyTorch tensörü durumunda, her sesin şekli (C, T) olmalıdır; burada C kanal sayısı, T ise sesin örnek uzunluğudur. - output_labels (
bool, isteğe bağlı, varsayılan=False) — Eğitim için etiketlerin döndürülüp döndürülmeyeceğini belirtir. - return_mm_token_type_ids (
bool, kwargs) — Çok modlu yer tutucu token konumlarını gösteren çok modlu token türü kimliklerini döndürülüp döndürülmemeye karar verir. - return_text_replacement_offsets (
bool, kwargs) — Her çok modlu yer tutucu ve ikamesi için karakter ofsetlerini döndürülüp döndürülmemeye karar verir. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:'pt': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini döndürür.
- **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.
Dönüş değeri
Tokenize edilmiş metin (input_ids, attention_mask) ve
ses özellikleri (input_features, input_features_mask) içeren bir sözlük.
apply_transcription_request
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor'], list[typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]]]language: str | list[str] | None = Noneprompt: str | list[str] | None = Nonetokenize: bool = True**kwargs: *<class 'transformers.processing_utils.ProcessingKwargs'> ) → [BatchFeature] or list[str]
Parametreler
- audio (AudioInput veya list[AudioInput]) — Transkribe edilecek ses. Bir URL dizgesi, yerel yol, numpy dizisi veya bunların bir listesi olabilir.
- language (str veya list[str], isteğe bağlı) —
Transkripsiyon için zorlanacak dil(ler). Tam adları
(ör.
"English","Chinese") veya ISO kodlarını (ör."en","zh") kabul eder. Bir liste, ses partisiyle aynı uzunlukta olmalıdır. Orijinal uygulamanın izini sürerek, dil, üretim isteminin ardındanlanguage <NAME><asr_text>eklenerek zorlanır, böylece model yalnızca transkripsiyon metnini üretir.Noneolduğunda, model otomatik dil algılama yapar velanguage <NAME><asr_text>...çıktısını kendisi üretir. - prompt (str veya list[str], isteğe bağlı) — Sistem promptu olarak dahil edilecek bağlam/sıcak kelimeler, örneğin transkripsiyonu belirli bir yöne çekmek için alanına özgü kelimeler veya ifadeler. Bir liste, ses partisiyle aynı uzunlukta olmalıdır. None olduğunda, sistem promptu boş bırakılır.
- tokenize (bool, opsiyonel, varsayılan True) — İfadelerin (prompts) tokenize edilip edilmeyeceğini ve sesin işlenip işlenmeyeceğini belirler. False değeri verilirse ses yüklenmez ve ifadeler, genişletilmemiş ses yer tutucuları (placeholders) içeren dizeler olarak döndürülür. Bunları sesle birlikte işlemciye (processor) iletmek, processor(text=prompts, audio=audio), tokenize=True ile aynı çıktıları verir.
- **kwargs — [~Qwen3ASRProcessor.apply_chat_template] ve altta yatan işlemci çağrısına (örneğin text_kwargs, audio_kwargs, …) iletilecek ek anahtar kelime argümanları.
Dönüş değeri
[BatchFeature] veya list[str]
tokenize=False olduğunda ses başına bir istem, aksi halde doğrudan [Qwen3ASRForConditionalGeneration.generate] fonksiyonuna geçirilmeye hazır işlemci çıktıları.
Otomatik konuşma tanıma için girdileri, sohbet şablonunu elle yazmadan hazırlayın.
prepare_forced_aligner_inputs
< source >( audio: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]transcript: str | list[str]language: str | list[str] | None = None**kwargs ) → tuple[BatchFeature, list[list[str]]]
Parametreler
- audio (AudioInput) — Ses girdileri. Yol, URL, numpy dizisi veya bunların bir listesini kabul eder.
- transcript (str veya list[str]) — Ses ile hizalanacak transkript(ler).
- language (str, list[str] veya None, isteğe bağlı) — Dil ipuçları. Şu anda tokenizasyonda kullanılmamaktadır ancak dil bazlı tokenizörler (ör. Japonca, Korece) için ayrılmıştır.
- **kwargs — [~Qwen3ASRProcessor.apply_chat_template] fonksiyonuna iletilecek ek anahtar kelime argümanları.
Dönüş değeri
tuple[BatchFeature, list[list[str]]]
inputs:input_ids,attention_mask,input_featuresveinput_features_maskalanlarına sahip, zorlanmış hizalayıcı modeli için hazır bir [BatchFeature].word_lists: Girdiyi oluşturmak için kullanılan kelime düzeyinde token listelerinin listesi (örnek başına bir tane). Zaman damgalarını kelimelerle eşleştirmek için bunları [~Qwen3ASRProcessor.decode_forced_alignment] fonksiyonuna iletin.
Zorlanmış hizalayıcı modeli için girdileri hazırlayın.
decode_forced_alignment
< source >( logitsinput_idsword_lists: list[list[str]]timestamp_token_id: inttimestamp_segment_time: float | None = None ) → list[list[dict]]
Parametreler
- logits (torch.Tensor, şekli (batch_size, seq_len, num_labels)) — [Qwen3ASRForTokenClassification] tarafından üretilen sınıflandırma logitleri.
- input_ids (torch.LongTensor, şekli (batch_size, seq_len)) — İleri geçiş için kullanılan girdi token kimlikleri.
- word_lists (list[list[str]]) — [~Qwen3ASRProcessor.prepare_forced_aligner_inputs] tarafından döndürülen kelime düzeyinde token listeleri.
- timestamp_token_id (int) —
<timestamp>işaretçisinin Token ID'si (model.config.timestamp_token_idiçinden). - timestamp_segment_time (float, isteğe bağlı) — Zaman damgası sınıfı başına milisaniye. Verilmezse self.timestamp_segment_time kullanılır.
Dönüş değeri
list[list[dict]]
Her örnek için bir liste. Her iç liste, "text" (str), "start_time" (float, saniye) ve "end_time" (float, saniye) anahtarlarına sahip sözlükler içerir.
Zorunlu hizalayıcı (forced aligner) model çıktılarını kelime düzeyinde zaman damgalarına dönüştürün.
decode
< source >( *argsreturn_format = 'raw'**kwargs )
Parametreler
- return_format (str, isteğe bağlı, varsayılanı “raw”) —
Seçenekler:
"raw": Tokenizer'dan ham çözümlenmiş dizgeleri döndürür."parsed":"language"ve"transcription"anahtarlarına sahip bir dict (veya dict listesi) döndürür."transcription_only": Yalnızca transkribe edilen metni çıkarır (<asr_text>sonrasında).
skip_special_tokens,"parsed"ve"transcription_only"içinTrueolarak sabitlenmiştir.
Argümanları tokenizer'ın decode yöntemine iletin ve isteğe bağlı olarak ASR çıktısını ayrıştırın.
Qwen3 ASR, transkripsiyonu şu formatta üretir: language <LANG><asr_text>transcribed text
Qwen3ASREncoder
sınıf transformers.Qwen3ASREncoder
< source >( config: Qwen3ASREncoderConfig )
Parametreler
- config (Qwen3ASREncoderConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde herhangi bir başlık veya projeksiyon bulunmayan Qwen3 ASR ses modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_features: Tensorinput_features_mask: Tensor**kwargs ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim)) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Qwen3ASRFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Qwen3ASRFeatureExtractor.call()'a bakın (Qwen3ASRProcessor, sesleri işlemek için Qwen3ASRFeatureExtractor kullanır). - input_features_mask (
torch.LongTensor, şekli(batch_size, padded_feature_length)) — Geçerli mel çerçeveleri için 1, dolgu için 0.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.Tensor)
A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Qwen3ASRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen3ASREncoder forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Qwen3ASRModel
sınıf transformers.Qwen3ASRModel
< source >( config: Qwen3ASRConfig )
Parametreler
- config (Qwen3ASRConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Qwen3ASR modeli (ince ayarlı Whisper kodlayıcı, çok modlu projeksiyoncu, Qwen2 dil modeli), dil modelleme kafası olmadan.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( 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] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Qwen3ASRModelOutputWithPast or tuple(torch.Tensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Girdi ses özelliklerine karşılık gelen tensörler. Ses özellikleri Qwen3ASRFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Qwen3ASRFeatureExtractor.call() bölümüne bakın (Qwen3ASRProcessor, sesleri işlemek için Qwen3ASRFeatureExtractor kullanır). - input_features_mask (
torch.Tensor, şekli(batch_size, feature_sequence_length)) — Doldurma (padding) özellik indeksleri üzerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_ids(şekli(batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemişinput_ids(şekli(batch_size, unprocessed_length)) girmesi beklenir. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values).
Dönüş değeri
Qwen3ASRModelOutputWithPast veya tuple(torch.Tensor)
Qwen3ASRModelOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Qwen3ASRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen3ASRModel forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
- audio_hidden_states (
torch.Tensor, isteğe bağlı) — Projeksiyonlanmış ses gizli durumları.
get_audio_features
< source >( input_features: Tensorinput_features_mask: LongTensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parametreler
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim)) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri Qwen3ASRFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Qwen3ASRFeatureExtractor.call()'a bakın (Qwen3ASRProcessor, sesleri işlemek için Qwen3ASRFeatureExtractor kullanır). - input_features_mask (
torch.LongTensor, şekli(batch_size, padded_feature_length)) — Geçerli mel çerçeveleri için 1, dolgu için 0.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.Tensor)
A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Qwen3ASRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Bu yöntem, giriş özelliklerinden (log mel spektrogram) ses gömme değerlerini almak için kullanılır.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
get_placeholder_mask
< source >( input_ids: LongTensorinputs_embeds: Tensoraudio_features: Tensor )
input_ids veya inputs_embeds içinden çok modlu yer tutucu maskesini alır ve yer tutucu belirteç sayısının çok modlu özelliklerin uzunluğuna eşit olduğunu kontrol eder. Uzunluklar farklıysa bir hata oluşturulur.
Qwen3ASRForConditionalGeneration
sınıf transformers.Qwen3ASRForConditionalGeneration
< source >( config: Qwen3ASRConfig )
Parametreler
- config (Qwen3ASRConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Bir ses kodlayıcı ve bir dil modelinden oluşan Qwen3ASR modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( 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] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Qwen3ASRCausalLMOutputWithPast or tuple(torch.Tensor)
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- input_features (
torch.Tensor, şekli(batch_size, sequence_length, feature_dim), isteğe bağlı) — Girdi ses özelliklerine karşılık gelen tensörler. Ses özellikleri Qwen3ASRFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için Qwen3ASRFeatureExtractor.call() bölümüne bakın (Qwen3ASRProcessor, sesleri işlemek için Qwen3ASRFeatureExtractor kullanır). - input_features_mask (
torch.Tensor, şekli(batch_size, feature_sequence_length)) — Doldurma (padding) özellik indeksleri üzerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. - attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_ids(şekli(batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemişinput_ids(şekli(batch_size, unprocessed_length)) girmesi beklenir. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values). - logits_to_keep (
Union[int, torch.Tensor], isteğe bağlı, varsayılan0) —intise, sonlogits_to_keeptoken için logits hesaplanır.0ise, tüminput_idsiçin logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir.torch.Tensorise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.
Dönüş değeri
Qwen3ASRCausalLMOutputWithPast veya tuple(torch.Tensor)
Qwen3ASRCausalLMOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırma (Qwen3ASRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Qwen3ASRForConditionalGeneration forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).logits (
torch.Tensor, şekli(batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları.past_key_values (
Cache, isteğe bağlı,use_cache=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğunda döndürülür) — Bir Cache örneğidir.hidden_states (
tuple[torch.Tensor], isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple[torch.Tensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
audio_hidden_states (
torch.Tensor, isteğe bağlı) — Projeksiyon sonrası ses kodlayıcısının gizli durumları.
Qwen3ASRForTokenClassification
sınıf transformers.Qwen3ASRForTokenClassification
< source >( config )
Parametreler
- config ([
[``GenericForTokenClassification``]]) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Zaman damgası tahmini için token sınıflandırma başlığına sahip Qwen3 ASR modeli (zorlamalı hizalama).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( input_ids: torch.LongTensor | None = Noneattention_mask: torch.Tensor | None = Noneposition_ids: torch.LongTensor | None = Nonepast_key_values: Cache | None = Noneinputs_embeds: torch.Tensor | None = Nonelabels: torch.LongTensor | None = Noneuse_cache: bool | None = None**kwargs: Unpack[TransformersKwargs] ) → TokenClassifierOutput
Parametreler
- input_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.
- attention_mask (
torch.Tensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri[0, 1]:- 1, maskelenmemiş jetonlar için,
- maskelenmiş jetonlar için 0.
- position_ids (
torch.LongTensorşeklinde(batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı[0, config.n_positions - 1]. - past_key_values (
Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_ids(şekli(batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemişinput_ids(şekli(batch_size, unprocessed_length)) girmesi beklenir. - inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır. - labels (
torch.LongTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Token sınıflandırma kaybını hesaplamak için etiketler. Endeksler[0, ..., config.num_labels - 1]aralığında olmalıdır. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz.past_key_values).
Dönüş değeri
TokenClassifierOutput
GenericForTokenClassification forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.