Transformers documentation
Fun-ASR-Nano
Bu model, 2025-09-15 tarihinde HF papers'ta yayımlandı ve 2026-09-08 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
Fun-ASR-Nano
Genel Bakış
Fun-ASR-Nano, Alibaba DAMO Academy’nin FunAudioLLM ekibi tarafından geliştirilen 800M parametreli uçtan uca konuşma tanıma modelidir. Karşılaştırılabilir modellere kıyasla önemli ölçüde daha küçük olmasına rağmen, Çince, İngilizce ve Japonca ASR kıyaslamalarında en iyi performansı elde eder.
Model, Fun-ASR: An Industrial-Grade Speech Recognition System makalesinde önerilmiştir.
Mimari
Fun-ASR-Nano üç bileşenden oluşur:
Ses Kodlayıcı (SenseVoiceEncoderSmall): Çok başlı öz-dikkat ile Feedforward Sequential Memory Networks'ı birleştiren, verimli ses özellik çıkarımı için 70 katmanlı bir SANM (FSMN Bellekli Öz-Dikkat) kodlayıcısı.
Audio Adaptor: Kodlayıcı çıktılarını (512 boyut) LLM boyutuna (1024 boyut) yansıtan 2 katmanlı bir Transformer.
Dil Modeli (Qwen3-0.6B): Transkripsiyon metnini otoregresif olarak üreten 28 katmanlı nedensel bir dil modelidir.
Öne Çıkan Özellikler
- Çince, İngilizce ve Japonca, 7 Çince lehçesi ve 26 bölgesel aksan dahil
- Alan bazlı sözlükler için Hotword özelleştirme
- Yerel noktalama çıktısı (ayrı bir noktalama modeli gerekmez)
Kullanım
Tekli çıkarım
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(audio=audio_url).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])Toplu çıkarım
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_urls = [
"https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/zh.mp3",
"https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3",
]
languages = ["zh", "en"]
inputs = processor.apply_transcription_request(audio=audio_urls, language=languages).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True))Özel istemler ve sıcak kelimeler
Bağlamsal bilgileri prompt ile, sıcak kelimeleri ise keywords ile iletin; kontrol noktası sohbet şablonu tam transkripsiyon talimatını oluşturur. language, Çince, İngilizce ve Japonca için tam adları veya ISO kodlarını kabul eder.
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(
audio=audio_url,
prompt="A tribal story involving a chieftain and a boy.",
keywords=["tribal chieftain", "fifty pieces of gold"],
).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=200)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])Eğitim
Hedef transkriptleri transcription ile apply_transcription_request fonksiyonuna iletin; döndürülen labels değerleri kaybı hesaplamak için kullanılır.
from datasets import Audio, load_dataset
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
NUM_SAMPLES = 2
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
model.train()
ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
ds = ds.cast_column("audio", Audio(sampling_rate=processor.feature_extractor.sampling_rate))
speech_samples = [el["array"] for el in ds["audio"][:NUM_SAMPLES]]
text_samples = ds["text"][:NUM_SAMPLES]
inputs = processor.apply_transcription_request(speech_samples, language="en", transcription=text_samples)
inputs.to(model.device, dtype=model.dtype)
loss = model(**inputs).loss
print("Loss:", loss.item())
loss.backward()torch.compile ile çıkarım
import torch
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, CompileConfig
model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id, device_map="auto")
audio_url = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/main/example/en.mp3"
inputs = processor.apply_transcription_request(audio=audio_url).to(model.device)
with torch.inference_mode():
generated_ids = model.generate(
**inputs,
max_new_tokens=200,
compile_config=CompileConfig(),
)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
print(processor.decode(generated_ids, skip_special_tokens=True)[0])FunAsrNanoConfig
sınıf transformers.FunAsrNanoConfig
< 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 = Noneadaptor_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneaudio_token_id: int = 151646initializer_range: float = 0.02tie_word_embeddings: bool = True )
Parametreler
- adaptor_config (
dictveyaFunAsrNanoAdaptorConfig, isteğe bağlı) — Çift yönlü ses adaptörü için yapılandırma. - audio_config (
Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — 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, isteğe bağlı, varsayılan151646) — Girdi sesinin yer tutucusu olarak kullanılan ses belirteç dizini. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanTrue) — Modelintied_weights_keyseşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
Bu, bir FunAsrNanoModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Fun Asr Nano modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, FunAudioLLM/Fun-ASR-Nano-2512-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Yapılandırma 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.
FunAsrNanoEncoderConfig
sınıf transformers.FunAsrNanoEncoderConfig
< 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 = 80hidden_size: int = 512num_attention_heads: int = 4intermediate_size: int = 2048num_hidden_layers: int = 70hidden_dropout: float = 0.1attention_dropout: float = 0.1layer_norm_eps: float = 1e-05hidden_act: str = 'relu'max_position_embeddings: int = 2049num_stacked_frames: int = 7num_timestamp_prediction_layers: int = 20fsmn_kernel_size: int = 11 )
Parametreler
- num_mel_bins (
int, isteğe bağlı, varsayılan80) — Giriş başına kullanılan mel özellik sayısı.AutoFeatureExtractorsınıfında kullanılan değerle eşleşmelidir. - hidden_size (
int, isteğe bağlı, varsayılan512) — Gizli temsillerin boyutu. - num_attention_heads (
int, isteğe bağlı, varsayılan4) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan2048) — MLP temsillerinin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan 70) — Transkripsiyon katmanları ve ardından gelen zaman damgası tahmin katmanlarını da içeren toplam kodlayıcı katman sayısı. - hidden_dropout (
float, isteğe bağlı, varsayılan0.1) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - attention_dropout (
float, isteğe bağlı, varsayılan0.1) — Dikkat olasılıkları için dropout oranı. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - hidden_act (
str, isteğe bağlı, varsayılanrelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - max_position_embeddings (
int, isteğe bağlı, varsayılan2049) — Bu modelin kullanılabileceği maksimum dizi uzunluğu. - num_stacked_frames (
int, isteğe bağlı, varsayılan 7) — Düşük kare hızlı özellik çıkarımı tarafından yığımlanan ardışık mel karelerinin sayısı. - num_timestamp_prediction_layers (
int, isteğe bağlı, varsayılan 20) — Zaman damgası tahmini için ayrılan kodlayıcı katmanlarının (son katmanlar) sayısı. Transkripsiyon çıktısı,num_hidden_layers - num_timestamp_prediction_layers - 1katmanından sonra alınır. - fsmn_kernel_size (
int, isteğe bağlı, varsayılan 11) — İleri beslemeli ardışık bellek ağı (FSMN) konvolüsyonu için çekirdek boyutu.
Bu, bir FunAsrNanoModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Fun Asr Nano modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, FunAudioLLM/Fun-ASR-Nano-2512-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Yapılandırma 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.
FunAsrNanoAdaptorConfig
sınıf transformers.FunAsrNanoAdaptorConfig
< 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 = Nonehidden_size: int = 1024num_attention_heads: int = 8intermediate_size: int = 256num_hidden_layers: int = 2hidden_dropout: float = 0.0attention_dropout: float = 0.0layer_norm_eps: float = 1e-05hidden_act: str = 'relu'projector_hidden_act: str = 'relu'projector_hidden_size: int = 2048 )
Parametreler
- hidden_size (
int, isteğe bağlı, varsayılan1024) — Gizli temsillerin boyutu. - num_attention_heads (
int, isteğe bağlı, varsayılan8) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - intermediate_size (
int, isteğe bağlı, varsayılan256) — MLP temsillerinin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan2) — Transformer decoder'ındaki gizli katman sayısı. - hidden_dropout (
float, isteğe bağlı, varsayılan0.0) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı. - attention_dropout (
float, isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - layer_norm_eps (
float, isteğe bağlı, varsayılan1e-05) — Katman normalizasyon katmanları tarafından kullanılan epsilon. - hidden_act (
str, isteğe bağlı, varsayılanrelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - projector_hidden_act (
str, isteğe bağlı, varsayılanrelu) — Çok modlu projeksiyoncu tarafından kullanılan aktivasyon fonksiyonu. - projector_hidden_size (
int, isteğe bağlı, varsayılan2048) — Metin ve görme projeksiyon katmanlarının boyutluluğu.
Bu, bir FunAsrNanoModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Fun Asr Nano modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, FunAudioLLM/Fun-ASR-Nano-2512-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Yapılandırma 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.
FunAsrNanoFeatureExtractor
sınıf transformers.FunAsrNanoFeatureExtractor
< source >( feature_size: int = 80sampling_rate: int = 16000frame_length: int = 25frame_shift: int = 10num_frames_lfr: int = 7stride_lfr: int = 6window: str = 'hamming'padding_value: float = 0.0return_attention_mask: bool = True**kwargs )
Parametreler
- feature_size (
int, isteğe bağlı, varsayılan 80) — Mel frekans bini sayısı. - sampling_rate (
int, isteğe bağlı, varsayılan 16000) — Sesin örneklem hızı. - frame_length (
int, isteğe bağlı, varsayılan 25) — STFT için milisaniye cinsinden çerçeve uzunluğu. - frame_shift (
int, isteğe bağlı, varsayılan 10) — STFT için milisaniye cinsinden çerçeve kayması (hop uzunluğu). - num_frames_lfr (
int, isteğe bağlı, varsayılan 7) — Yığılacak ardışık kare sayısı (LFR yığılma çarpanı). - stride_lfr (
int, isteğe bağlı, varsayılan 6) — LFR için alt örneklemeyi (herstride_lfr. yığılmış kareyi al) belirleyen adım. - window (
str, isteğe bağlı, varsayılan"hamming") — STFT için pencere fonksiyonu. - padding_value (
float, isteğe bağlı, varsayılan 0.0) — Daha kısa dizileri doldurmak için kullanılan değer. - return_attention_mask (
bool, isteğe bağlı, varsayılanTrue) — Dikkat maskesinin (attention mask) döndürülüp döndürülmeyeceğini belirtir.
Bir Fun-ASR-Nano özellik çıkarıcı oluşturur.
Bu özellik çıkarıcı, ana yöntemlerin çoğunu içeren SequenceFeatureExtractor sınıfından devralır. Kullanıcıların bu yöntemler hakkında daha fazla bilgi için bu üst sınıfa başvurması gerekir.
Kaldi ile uyumlu mel-filtre bankası özelliklerini (orijinal FunASR ön ucunu eşleştiren torchaudio.compliance.kaldi.fbank aracılığıyla) çıkarır ve ardından num_frames_lfr ardışık çerçeveyi yığımlayarak ve stride_lfr adımıyla alt örneklemeyi uygulayarak Düşük Çerçeveler Hızı (LFR) işleme uygular.
Örnek:
>>> import numpy as np
>>> from transformers import FunAsrNanoFeatureExtractor
>>> feature_extractor = FunAsrNanoFeatureExtractor()
>>> audio = np.random.randn(16000) # 1 second of audio at 16kHz
>>> features = feature_extractor(audio, sampling_rate=16000, return_tensors="pt")
>>> features.input_features.shape # (1, num_frames_after_lfr, 560)__call__
< source >( raw_speech: typing.Union[numpy.ndarray, ForwardRef('torch.Tensor'), collections.abc.Sequence[numpy.ndarray], collections.abc.Sequence['torch.Tensor']]sampling_rate: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = 'pt'padding: bool | str = Truemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = None**kwargs )
Parametreler
- raw_speech (
np.ndarray,list[float],list[np.ndarray],list[list[float]]) — Özellikle çıkarılacak tek kanallı dalga formlarının dizisi veya partisi. - sampling_rate (
int, isteğe bağlı) — Giriş sesinin örneklem hızı.self.sampling_rate(16000 Hz) ile eşleşmelidir. - return_tensors (
strveya TensorType, isteğe bağlı) — Belirtilirse, verilen framework'e ("pt","np", …) ait tensörleri döndürür. - padding (
boolveyastr, isteğe bağlı, varsayılanTrue) — pad() fonksiyonuna iletilen dolgu stratejisi. - max_length (
int, isteğe bağlı) — Dolgu/kısaltma için maksimum LFR dizisi uzunluğu. - truncation (
bool, isteğe bağlı, varsayılanFalse) —max_lengthdeğerinden uzun olan dizilerin kırpilip kırpılmayacağını belirtir. - pad_to_multiple_of (
int, isteğe bağlı) — Belirlenirse, LFR dizisi uzunluğu bu değerin katına tamamlanır. - return_attention_mask (
bool, isteğe bağlı) —input_features_maskdeğerinin döndürülüp döndürülmeyeceğini belirtir. Varsayılan değeriself.return_attention_mask'tir.
Bir veya birden fazla ham ses dalgasından Kaldi mel-filtre bankası + LFR özelliklerini çıkarın.
FunAsrNanoProcessor
sınıf transformers.FunAsrNanoProcessor
< source >( feature_extractortokenizerchat_template = Noneaudio_token = '<|object_ref_start|>' )
Parametreler
- feature_extractor (
FunAsrNanoFeatureExtractor) — Ö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. - audio_token (
str, isteğe bağlı, varsayılan"<|object_ref_start|>") — Metinde ses için yer tutucu olarak kullanılan belirteç.
Bir özellik çıkarıcıyı ve bir belirteçleyiciyi tek bir işlemciye saran bir FunAsrNanoProcessor oluşturur.
FunAsrNanoProcessor, FunAsrNanoFeatureExtractor ve Qwen2Tokenizer sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~FunAsrNanoFeatureExtractor 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'], NoneType] = Noneoutput_labels: bool | None = False**kwargs: *<class 'transformers.models.fun_asr_nano.processing_fun_asr_nano.FunAsrNanoProcessorKwargs'> ) → 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]], isteğe bağlı) — 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_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 = Nonekeywords: str | list[str] | list[list[str]] | None = Nonetranscription: str | list[str] | None = Nonetokenize: bool = True**kwargs: *<class 'transformers.models.fun_asr_nano.processing_fun_asr_nano.FunAsrNanoProcessorKwargs'> ) → BatchFeature or list[str]
Parametreler
- audio (
AudioInputveyalist[AudioInput]) — Transkribe edilecek ses. Bir URL, yerel yol, NumPy dizisi, PyTorch tensörü veya bunların bir listesi olabilir. - language (
strveyalist[str], isteğe bağlı) — Hedef dil. Tam İngilizce adlar (Chinese, English, Japanese), ISO kodları ("zh","en","ja") veya checkpoint'in Çin dilindeki adları ("中文","英文","日文") kabul eder. Tek bir değer, tüm batch'e yayılır. - prompt (
strveyalist[str], isteğe bağlı) — Transkripsiyonu iyileştirebilecek bağlamsal bilgiler. Bir liste, ses partisinin boyutuyla eşleşmelidir. - keywords (
str,list[str]veyalist[list[str]], isteğe bağlı) — Tanımayı yönlendirmek için kullanılan anahtar kelimeler. Bir dize veya düz liste, tüm batch arasında paylaşıldır; iç içe geçmiş bir liste ise her ses örneği için ayrı anahtar kelimeler sağlar. - transcription (
strveyalist[str], isteğe bağlı) — Eğitim için hedef transkript(ler), ses başına bir adet. Verildiğinde, her transkript asistan turu olarak yazılır velabelsdöndürülür (bkz. call() içindekioutput_labels). - tokenize (
bool, isteğe bağlı, varsayılanTrue) — İfadelerin (prompts) tokenize edilip edilmeyeceğini ve sesin işlenip işlenmeyeceğini belirler.Falseise ses yüklenmez ve ifadeler, genişletilmemiş ses yer tutucuları (placeholders) içeren dizgeler olarak döndürülür. Bunları sesle birlikte işlemciye (processor) iletirseniz,processor(text=prompts, audio=audio),tokenize=Trueile aynı çıktıları verir. - **kwargs —
apply_chat_template() işlevine iletilecek ek anahtar kelime argümanları.
İşleyici anahtar kelime argümanları (örneğin
text_kwargs,audio_kwargs, …)processor_kwargs={...}olarak geçirilmelidir.
Dönüş değeri
BatchFeature veya list[str]
tokenize=False olduğunda ses başına bir prompt, aksi halde FunAsrNanoForConditionalGeneration.generate() veya transcription verildiğinde kaybı hesaplamak için FunAsrNanoForConditionalGeneration.forward() fonksiyonuna aktarılmaya hazır işlemci çıktıları.
transcription verildiğinde eğitim için, aksi halde çıkarım için, kontrol noktasının yapılandırılmış transkripsiyon sohbet şablonunu kullanarak ASR için girdileri hazırlar.
FunAsrNanoEncoder
sınıf transformers.FunAsrNanoEncoder
< source >( config: FunAsrNanoEncoderConfig )
Parametreler
- config (FunAsrNanoEncoderConfig) — 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.
Fun-ASR-Nano ses kodlayıcısı (SenseVoice SAN-M mimarisi), üstünde herhangi bir head 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_features: Tensorinput_features_mask: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput 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 FunAsrNanoFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için FunAsrNanoFeatureExtractor.call() bölümüne bakın (FunAsrNanoProcessor, sesleri işlemek için FunAsrNanoFeatureExtractor 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
BaseModelOutput veya tuple(torch.Tensor)
Bir BaseModelOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (FunAsrNanoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
FunAsrNanoEncoder 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.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.
FunAsrNanoModel
sınıf transformers.FunAsrNanoModel
< source >( config: FunAsrNanoConfig )
Parametreler
- config (FunAsrNanoConfig) — 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.
Fun-ASR-Nano modeli (SenseVoice SAN-M ses kodlayıcısı, bir Transformer adaptörü ve bir Qwen3 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'> ) → FunAsrNanoModelOutputWithPast 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ı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri FunAsrNanoFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için FunAsrNanoFeatureExtractor.call() bölümüne bakın (FunAsrNanoProcessor, sesleri işlemek için FunAsrNanoFeatureExtractor 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
FunAsrNanoModelOutputWithPast veya tuple(torch.Tensor)
FunAsrNanoModelOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (FunAsrNanoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
FunAsrNanoModel 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ı.
FunAsrNanoForConditionalGeneration
sınıf transformers.FunAsrNanoForConditionalGeneration
< source >( config: FunAsrNanoConfig )
Parametreler
- config (FunAsrNanoConfig) — 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.
Konuşma tanıma için Fun-ASR-Nano modeli: SenseVoice SAN-M ses kodlayıcı, bir Transformer adaptörü ve dil modelleme kafasına sahip bir Qwen3 dil 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'> ) → FunAsrNanoCausalLMOutputWithPast 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ı) — Giriş ses özelliklerine karşılık gelen tensörler. Ses özellikleri FunAsrNanoFeatureExtractor kullanılarak elde edilebilir. Ayrıntılar için FunAsrNanoFeatureExtractor.call() bölümüne bakın (FunAsrNanoProcessor, sesleri işlemek için FunAsrNanoFeatureExtractor 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
FunAsrNanoCausalLMOutputWithPast veya tuple(torch.Tensor)
FunAsrNanoCausalLMOutputWithPast veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (FunAsrNanoConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
FunAsrNanoForConditionalGeneration 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ı.