Automatic Speech Recognition
Transformers
Safetensors
VibeVoice
multilingual
vibevoice_asr
bitsandbytes
4-bit precision
quantized
diarization
Instructions to use Dubedo/VibeVoice-ASR-HF-NF4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Dubedo/VibeVoice-ASR-HF-NF4 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="Dubedo/VibeVoice-ASR-HF-NF4")# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Dubedo/VibeVoice-ASR-HF-NF4") model = AutoModelForMultimodalLM.from_pretrained("Dubedo/VibeVoice-ASR-HF-NF4", device_map="auto") - VibeVoice
How to use Dubedo/VibeVoice-ASR-HF-NF4 with VibeVoice:
import torch, soundfile as sf, librosa, numpy as np from vibevoice.processor.vibevoice_processor import VibeVoiceProcessor from vibevoice.modular.modeling_vibevoice_inference import VibeVoiceForConditionalGenerationInference # Load voice sample (should be 24kHz mono) voice, sr = sf.read("path/to/voice_sample.wav") if voice.ndim > 1: voice = voice.mean(axis=1) if sr != 24000: voice = librosa.resample(voice, sr, 24000) processor = VibeVoiceProcessor.from_pretrained("Dubedo/VibeVoice-ASR-HF-NF4") model = VibeVoiceForConditionalGenerationInference.from_pretrained( "Dubedo/VibeVoice-ASR-HF-NF4", torch_dtype=torch.bfloat16 ).to("cuda").eval() model.set_ddpm_inference_steps(5) inputs = processor(text=["Speaker 0: Hello!\nSpeaker 1: Hi there!"], voice_samples=[[voice]], return_tensors="pt") audio = model.generate(**inputs, cfg_scale=1.3, tokenizer=processor.tokenizer).speech_outputs[0] sf.write("output.wav", audio.cpu().numpy().squeeze(), 24000) - Notebooks
- Google Colab
- Kaggle
| {%- set system_prompt = system_prompt | default("You are a helpful assistant that transcribes audio input into text output in JSON format.") -%} | |
| <|im_start|>system | |
| {{ system_prompt }}<|im_end|> | |
| {%- set audio_token = audio_token | default("<|box_start|>") -%} | |
| {%- set audio_start_token = "<|object_ref_start|>" -%} | |
| {%- set audio_end_token = "<|object_ref_end|>" -%} | |
| {%- for message in messages -%} | |
| {%- if message['role'] == 'user' -%} | |
| {{ ' | |
| ' }}<|im_start|>user{{ ' | |
| ' }}{%- set text_items = message['content'] | selectattr('type', 'equalto', 'text') | list -%} | |
| {%- set context_text = text_items[0]['text'] if text_items else none -%} | |
| {%- for item in message['content'] -%} | |
| {%- if item['type'] == 'audio' -%} | |
| {{ audio_start_token }}{{ audio_token }}{{ audio_end_token }}{{ " | |
| " }}{%- if context_text -%} | |
| This is a <|AUDIO_DURATION|> seconds audio, with extra info: {{ context_text }} | |
| Please transcribe it with these keys: Start time, End time, Speaker ID, Content{%- else -%} | |
| This is a <|AUDIO_DURATION|> seconds audio, please transcribe it with these keys: Start time, End time, Speaker ID, Content{%- endif -%} | |
| {%- endif -%} | |
| {%- endfor -%} | |
| <|im_end|>{{ ' | |
| ' }} | |
| {%- endif -%} | |
| {%- endfor -%} |