Qolda-AVL is a 5B audio-vision-language model designed to operate in Kazakh, Russian, and English. The model extends Qwen3-VL with an audio branch built on a fine-tuned Whisper encoder and a dedicated audio projection module. All three modalities are adapted to Kazakh through a staged training pipeline, with the audio branch covering speech recognition, speech translation, audio classification, and environmental sound captioning.
To improve audio feature injection into the language backbone, we apply the DeepStack mechanism to the audio branch, mirroring the vision processing pipeline of Qwen3-VL 💜
Qolda-AVL architecture
The model is our step towards omni-modal systems for the Kazakh language.
The name "Qolda" reflects both its design and purpose in Kazakh: "in hand" (қолда) for its compact accessibility, and "to support" (қолдау) for its assistive nature.
Evaluation
The benchmark suites and Qolda-AVL model collection are available here:
The following tables report benchmark results across the Qolda-AVL family together with Qolda baselines. Higher is better unless otherwise noted, and the best result within each row is shown in bold.
1messages =[2{3"role":"user",4"content":[5{"type":"image","image":"assets/sample_image.jpg"},# or provide link to the image6{"type":"text","text":"Суретті егжей-тегжейлі сипаттап бер. Неше жылқы көріп тұрсың және олардың түстері қандай?"},7],8}9]
Audio-Language:
Note: The model was not trained to answer questions posed directly in the audio. Provide a detailed text instruction alongside the audio describing the task you want performed on it.
python
1prompt ="""Математикалық есепті шеш.
2Respond ONLY with this JSON format: {"explanation": "<your step-by-step reasoning>", "answer": <integer or float number>}
3The answer must be a number (integer or float). No text, no units, just the number.
4"""56messages =[7{8"role":"user",9"content":[10{"type":"audio","audio":"assets/sample_audio.wav"},# or provide link to the audio11{"type":"text","text": prompt}12],13}14]
Audio-Vision-Language:
python
1messages =[2{3"role":"user",4"content":[5{"type":"audio","audio":"assets/question_audio.wav"},6{"type":"image","image":"assets/sample_image.jpg"},7{"type":"text","text":"Answer the question"},8],9}10]
Finally, pass the messages to the model for inference:
1import base64
2from openai import OpenAI
34client = OpenAI(5 base_url="http://localhost:8000/v1",6 api_key="EMPTY"7)89defencode_audio_base64(path:str| Path)->str:10withopen(path,"rb")as f:11return base64.b64encode(f.read()).decode("utf-8")1213defencode_image_base64(path:str| Path)->str:14withopen(path,"rb")as f:15return base64.b64encode(f.read()).decode("utf-8")1617audio_path ="assets/sample_audio.wav"18audio_b64 = encode_audio_base64(audio_path)1920stream = client.chat.completions.create(21 model=client.models.list().data[0].id,22 messages=[23{24"role":"user",25"content":[26{27"type":"input_audio",28"input_audio":{29"data": audio_b64,30"format":"wav",31},32},33{34"type":"text",35"text":(36"Analyze the voice in the audio and identify the speaker's "37"gender (male or female). Also transcribe what is said. "38"Return your answer as JSON in the following format: "39'{"answer": "<male or female>",'40'"transcription": "<transcription>"}'41),42},43],44}45],46 max_tokens=4096,47 temperature=0.7,48 top_p=0.8,49 stream=True,50 stream_options={"include_usage":True},51)5253text =""54usage =None55for chunk in stream:56if chunk.usage:57 usage = chunk.usage
58if chunk.choices and chunk.choices[0].delta.content:59 token = chunk.choices[0].delta.content
60print(token, end="", flush=True)61 text += token
License
Apache License 2.0
Citation
bibtex
12@article{qolda-avl-bdcc,
3AUTHOR = {Arystanbekov, Batyr and Maxutov, Akylbek and Nurimanov, Aspandiyar and Varol, Huseyin Atakan},
4TITLE = {Extending a Vision–Language Model with Audio Understanding: Introducing Qolda-AVL for the Kazakh Language},
5JOURNAL = {Big Data and Cognitive Computing},
6VOLUME = {10},
7YEAR = {2026},
8NUMBER = {6},
9ARTICLE-NUMBER = {192},
10URL = {https://www.mdpi.com/2504-2289/10/6/192},
11ISSN = {2504-2289},
12DOI = {10.3390/bdcc10060192}
13}
14