đ Ultravox
Ultravox is a multimodal Speech LLM that combines speech and text processing capabilities, built on powerful pretrained backbones, offering new possibilities for audio - text interaction.
đ Quick Start
Ultravox is a multimodal Speech LLM built around a pretrained [Mistral - Nemo - Instruct - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Instruct - 2407) and [whisper - large - v3 - turbo](https://huggingface.co/openai/whisper - large - v3 - turbo) backbone.
See https://ultravox.ai for the GitHub repo and more information.
⨠Features
- Supports multiple languages including Arabic, German, English, Spanish, French, Hindi, Italian, Japanese, Dutch, Portuguese, Russian, Swedish, Turkish, Ukrainian, and Chinese.
- Can consume both speech and text as input, enabling various applications like voice agents and speech - to - speech translation.
đĻ Installation
To use the model, you need to install the necessary libraries:
pip install transformers peft librosa
đģ Usage Examples
Basic Usage
import transformers
import numpy as np
import librosa
pipe = transformers.pipeline(model='fixie - ai/ultravox - v0_4_1 - mistral - nemo', trust_remote_code=True)
path = "<path - to - input - audio>"
audio, sr = librosa.load(path, sr = 16000)
turns = [
{
"role": "system",
"content": "You are a friendly and helpful character. You love to answer questions for people."
},
]
pipe({'audio': audio, 'turns': turns, 'sampling_rate': sr}, max_new_tokens = 30)
đ Documentation
Model Details
Model Description
Ultravox is a multimodal model that can consume both speech and text as input (e.g., a text system prompt and voice user message).
The input to the model is given as a text prompt with a special <|audio|>
pseudo - token, and the model processor will replace this magic token with embeddings derived from the input audio.
Using the merged embeddings as input, the model will then generate output text as usual.
In a future revision of Ultravox, we plan to expand the token vocabulary to support generation of semantic and acoustic audio tokens, which can then be fed to a vocoder to produce voice output.
No preference tuning has been applied to this revision of the model.
- Developed by: Fixie.ai
- License: MIT
Model Sources
- Repository: https://ultravox.ai
- Demo: See repo
Training Details
Training Data
The training dataset is a mix of ASR datasets, extended with continuations generated by Mistral Nemo, and speech translation datasets, which yield a modest improvement in translation evaluations.
Training Procedure
Supervised speech instruction finetuning via knowledge - distillation. For more info, see [training code in Ultravox repo](https://github.com/fixie - ai/ultravox/blob/main/ultravox/training/train.py).
Training Hyperparameters
- Training regime: BF16 mixed precision training
- Hardward used: 8x H100 GPUs
Speeds, Sizes, Times
The current version of Ultravox, when invoked with audio content, has a time - to - first - token (TTFT) of approximately 150ms, and a tokens - per - second rate of ~50 - 100 when using an A100 - 40GB GPU, all using a Mistral Nemo backbone.
Check out the audio tab on [TheFastest.ai](https://thefastest.ai/?m = audio) for daily benchmarks and a comparison with other existing models.
Evaluation
Property |
Details |
en_ar |
10.36 |
en_de |
28.39 |
es_en |
37.49 |
ru_en |
41.64 |
en_ca |
26.85 |
zh_en |
12.65 |
đ License
This project is licensed under the MIT license.