chtan commited on
Commit
fa4f933
·
verified ·
1 Parent(s): 6c968ed

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ - zh
5
+ license: apache-2.0
6
+ library_name: transformers
7
+ tags:
8
+ - audio
9
+ - speech
10
+ - audio-language-model
11
+ - speech-to-text
12
+ - speech-to-speech
13
+ - voice-chat
14
+ pipeline_tag: audio-text-to-text
15
+ ---
16
+
17
+ # Fun-Audio-Chat-8B
18
+
19
+ <p align="right">
20
+ <a href="README.md">English</a> | <a href="README_zh.md">中文</a>
21
+ </p>
22
+
23
+ <div align="center">
24
+
25
+ **Fun-Audio-Chat** is a Large Audio Language Model built for natural, low-latency voice interactions.
26
+
27
+ [![Paper](https://img.shields.io/badge/Paper-PDF-red)](https://github.com/FunAudioLLM/Fun-Audio-Chat/blob/main/Fun-Audio-Chat-Technical-Report.pdf)
28
+ [![GitHub](https://img.shields.io/badge/GitHub-Code-blue)](https://github.com/FunAudioLLM/Fun-Audio-Chat)
29
+ [![Demo](https://img.shields.io/badge/Demo-Page-green)](https://funaudiollm.github.io/funaudiochat)
30
+
31
+ **Tongyi Fun Team, Alibaba Group**
32
+
33
+ </div>
34
+
35
+ ## Model Description
36
+
37
+ Fun-Audio-Chat is a Large Audio Language Model built for natural, low-latency voice interactions. It introduces **Dual-Resolution Speech Representations** (an efficient 5Hz shared backbone + a 25Hz refined head) to cut compute while keeping high speech quality, and **Core-Cocktail training** to preserve strong text LLM capabilities. It delivers top-tier results on spoken QA, audio understanding, speech function calling, speech instruction-following and voice empathy benchmarks.
38
+
39
+ ### Key Features
40
+
41
+ - **Dual-Resolution Speech Representations**: Efficient 5Hz frame rate (vs. 12.5Hz or 25Hz for other models), reducing GPU hours by nearly 50% while maintaining high speech quality
42
+ - **State-of-the-Art Performance**: Ranks Top among models of the same size (around-8B parameters) on OpenAudioBench, VoiceBench, UltraEval-Audio, MMAU, MMAU-Pro, MMSU, Speech-ACEBench, Speech-BFCL, Speech-SmartInteract, VStyle
43
+ - **Comprehensive Capabilities**: Supports spoken QA, audio understanding, speech function calling, speech instruction-following, voice empathy
44
+
45
+ ## Model Details
46
+
47
+ | Attribute | Value |
48
+ |-----------|-------|
49
+ | Model Size | ~8B parameters |
50
+ | Architecture | Dual-Resolution Speech Representations |
51
+ | Languages | English, Chinese |
52
+ | License | Apache 2.0 |
53
+
54
+ ## Requirements
55
+
56
+ - Python == 3.12
57
+ - PyTorch == 2.8.0
58
+ - ffmpeg
59
+ - GPU Memory: ~24GB for inference, 4×80GB for training
60
+
61
+ ## Installation
62
+
63
+ ```bash
64
+ git clone --recurse-submodules https://github.com/FunAudioLLM/Fun-Audio-Chat
65
+ cd Fun-Audio-Chat
66
+
67
+ apt install ffmpeg
68
+ conda create -n FunAudioChat python=3.12 -y
69
+ conda activate FunAudioChat
70
+ pip install torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
71
+ pip install -r requirements.txt
72
+ ```
73
+
74
+ ## Quick Start
75
+
76
+ ### Download Models
77
+
78
+ **Using HuggingFace:**
79
+ ```bash
80
+ pip install huggingface-hub
81
+ hf download FunAudioLLM/Fun-Audio-Chat-8B --local-dir ./pretrained_models/Fun-Audio-Chat-8B
82
+ hf download FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local-dir ./pretrained_models/Fun-CosyVoice3-0.5B-2512
83
+ ```
84
+
85
+ **Or using ModelScope:**
86
+ ```bash
87
+ modelscope download --model FunAudioLLM/Fun-Audio-Chat-8B --local_dir pretrained_models/Fun-Audio-Chat-8B
88
+ modelscope download --model FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local_dir pretrained_models/Fun-CosyVoice3-0.5B-2512
89
+ ```
90
+
91
+ ### Inference
92
+
93
+ ```bash
94
+ export PYTHONPATH=`pwd`
95
+ # Speech-to-Text
96
+ python examples/infer_s2t.py
97
+ # Speech-to-Speech
98
+ python examples/infer_s2s.py
99
+ ```
100
+
101
+ ## Evaluation
102
+
103
+ | Benchmark | Category |
104
+ |-----------|----------|
105
+ | OpenAudioBench | Spoken QA |
106
+ | VoiceBench | Spoken QA |
107
+ | UltraEval-Audio | Speech-to-Speech |
108
+ | MMAU, MMAU-Pro, MMSU | Audio Understanding |
109
+ | Speech-ACEBench, Speech-BFCL, Speech-SmartInteract | Speech Function Calling |
110
+ | VStyle | Speech Instruction-Following |
111
+
112
+ For detailed evaluation instructions, please refer to the [GitHub repository](https://github.com/FunAudioLLM/Fun-Audio-Chat).
113
+
114
+ ## Citation
115
+
116
+ If you find this model useful, please cite our paper:
117
+
118
+ ```bibtex
119
+ @article{funaudiochat2025,
120
+ title={Fun-Audio-Chat: A Large Audio Language Model for Natural Voice Interactions},
121
+ author={Tongyi Fun Team},
122
+ year={2025}
123
+ }
124
+ ```
125
+
126
+ ## License
127
+
128
+ This model is licensed under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).
129
+
130
+ ## Acknowledgments
131
+
132
+ This project is based on the following excellent open-source projects:
133
+
134
+ - [Transformers](https://github.com/huggingface/transformers)
135
+ - [LlamaFactory](https://github.com/hiyouga/LLaMA-Factory)
136
+ - [Moshi](https://github.com/kyutai-labs/moshi)
137
+ - [CosyVoice](https://github.com/FunAudioLLM/CosyVoice)
138
+
139
+ ## Contact
140
+
141
+ - 🐛 Submit an [Issue](https://github.com/FunAudioLLM/Fun-Audio-Chat/issues)
142
+ - 💡 Submit a [Pull Request](https://github.com/FunAudioLLM/Fun-Audio-Chat/pulls)
143
+
README_zh.md ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ - zh
5
+ license: apache-2.0
6
+ library_name: transformers
7
+ tags:
8
+ - audio
9
+ - speech
10
+ - audio-language-model
11
+ - speech-to-text
12
+ - speech-to-speech
13
+ - voice-chat
14
+ pipeline_tag: audio-text-to-text
15
+ ---
16
+
17
+ # Fun-Audio-Chat-8B
18
+
19
+ <p align="right">
20
+ <a href="README.md">English</a> | <a href="README_zh.md">中文</a>
21
+ </p>
22
+
23
+ <div align="center">
24
+
25
+ **Fun-Audio-Chat** 是一个专为自然、低延迟语音交互打造的大型音频语言模型。
26
+
27
+ [![论文](https://img.shields.io/badge/论文-PDF-red)](https://github.com/FunAudioLLM/Fun-Audio-Chat/blob/main/Fun-Audio-Chat-Technical-Report.pdf)
28
+ [![GitHub](https://img.shields.io/badge/GitHub-代码-blue)](https://github.com/FunAudioLLM/Fun-Audio-Chat)
29
+ [![演示](https://img.shields.io/badge/演示-页面-green)](https://funaudiollm.github.io/funaudiochat)
30
+
31
+ **通义Fun团队,阿里巴巴集团**
32
+
33
+ </div>
34
+
35
+ ## 模型介绍
36
+
37
+ Fun-Audio-Chat 是一个专为自然、低延迟语音交互打造的大型音频语言模型。它引入了**双分辨率语音表征**(高效的5Hz共享骨干网络 + 25Hz精细化头部),在保持高语音质量的同时大幅降低计算开销,并采用**Core-Cocktail训练策略**来保持强大的文本LLM能力。该模型在语音问答、音频理解、语音函数调用、语音指令遵循和语音情感共鸣等基准测试中均取得了顶尖成绩。
38
+
39
+ ### 核心特性
40
+
41
+ - **双分辨率语音表征**:高效的5Hz帧率(相比其他模型的12.5Hz或25Hz),将GPU训练时间减少近50%,同时保持高语音质量
42
+ - **业界领先性能**:在同等规模模型(约8B参数)中,在OpenAudioBench、VoiceBench、UltraEval-Audio、MMAU、MMAU-Pro、MMSU、Speech-ACEBench、Speech-BFCL、Speech-SmartInteract、VStyle等评测集上排名领先
43
+ - **全面的能力覆盖**:支持语音问答、音频理解、语音函数调用、语音指令遵循、语音情感共鸣
44
+
45
+ ## 模型详情
46
+
47
+ | 属性 | 值 |
48
+ |------|-----|
49
+ | 模型规模 | ~8B 参数 |
50
+ | 模型架构 | 双分辨率语音表征 |
51
+ | 支持语言 | 英语、中文 |
52
+ | 许可证 | Apache 2.0 |
53
+
54
+ ## 环境要求
55
+
56
+ - Python == 3.12
57
+ - PyTorch == 2.8.0
58
+ - ffmpeg
59
+ - 显存要求:推理需要 ~24GB,训练需要 4×80GB
60
+
61
+ ## 安装
62
+
63
+ ```bash
64
+ git clone --recurse-submodules https://github.com/FunAudioLLM/Fun-Audio-Chat
65
+ cd Fun-Audio-Chat
66
+
67
+ apt install ffmpeg
68
+ conda create -n FunAudioChat python=3.12 -y
69
+ conda activate FunAudioChat
70
+ pip install torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128
71
+ pip install -r requirements.txt
72
+ ```
73
+
74
+ ## 快速开始
75
+
76
+ ### 下载模型
77
+
78
+ **使用 HuggingFace 下载:**
79
+ ```bash
80
+ pip install huggingface-hub
81
+ hf download FunAudioLLM/Fun-Audio-Chat-8B --local-dir ./pretrained_models/Fun-Audio-Chat-8B
82
+ hf download FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local-dir ./pretrained_models/Fun-CosyVoice3-0.5B-2512
83
+ ```
84
+
85
+ **或使用 ModelScope 下载:**
86
+ ```bash
87
+ modelscope download --model FunAudioLLM/Fun-Audio-Chat-8B --local_dir pretrained_models/Fun-Audio-Chat-8B
88
+ modelscope download --model FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local_dir pretrained_models/Fun-CosyVoice3-0.5B-2512
89
+ ```
90
+
91
+ ### 推理
92
+
93
+ ```bash
94
+ export PYTHONPATH=`pwd`
95
+ # 语音转文字
96
+ python examples/infer_s2t.py
97
+ # 语音转语音
98
+ python examples/infer_s2s.py
99
+ ```
100
+
101
+ ## 评测
102
+
103
+ | 基准测试 | 类别 |
104
+ |---------|------|
105
+ | OpenAudioBench | 语音问答 |
106
+ | VoiceBench | 语音问答 |
107
+ | UltraEval-Audio | 语音转语音 |
108
+ | MMAU, MMAU-Pro, MMSU | 音频理解 |
109
+ | Speech-ACEBench, Speech-BFCL, Speech-SmartInteract | 语音函数调用 |
110
+ | VStyle | 语音指令遵循 |
111
+
112
+ 详细的评测说明请参阅 [GitHub 仓库](https://github.com/FunAudioLLM/Fun-Audio-Chat)。
113
+
114
+ ## 引用
115
+
116
+ 如果您觉得本模型有帮助,请引用我们的论文:
117
+
118
+ ```bibtex
119
+ @article{funaudiochat2025,
120
+ title={Fun-Audio-Chat: A Large Audio Language Model for Natural Voice Interactions},
121
+ author={Tongyi Fun Team},
122
+ year={2025}
123
+ }
124
+ ```
125
+
126
+ ## 许可证
127
+
128
+ 本模型采用 [Apache 2.0 许可证](https://www.apache.org/licenses/LICENSE-2.0)。
129
+
130
+ ## 致谢
131
+
132
+ 本项目基于以下优秀的开源项目构建:
133
+
134
+ - [Transformers](https://github.com/huggingface/transformers)
135
+ - [LlamaFactory](https://github.com/hiyouga/LLaMA-Factory)
136
+ - [Moshi](https://github.com/kyutai-labs/moshi)
137
+ - [CosyVoice](https://github.com/FunAudioLLM/CosyVoice)
138
+
139
+ ## 联系我们
140
+
141
+ - 🐛 提交 [Issue](https://github.com/FunAudioLLM/Fun-Audio-Chat/issues)
142
+ - 💡 提交 [Pull Request](https://github.com/FunAudioLLM/Fun-Audio-Chat/pulls)
143
+
added_tokens.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</think>": 151668,
3
+ "</tool_call>": 151658,
4
+ "</tool_response>": 151666,
5
+ "<think>": 151667,
6
+ "<tool_call>": 151657,
7
+ "<tool_response>": 151665,
8
+ "<|AUDIO|>": 151669,
9
+ "<|audio_bos|>": 151670,
10
+ "<|audio_eos|>": 151671,
11
+ "<|audio_pad|>": 151672,
12
+ "<|box_end|>": 151649,
13
+ "<|box_start|>": 151648,
14
+ "<|endoftext|>": 151643,
15
+ "<|file_sep|>": 151664,
16
+ "<|fim_middle|>": 151660,
17
+ "<|fim_pad|>": 151662,
18
+ "<|fim_prefix|>": 151659,
19
+ "<|fim_suffix|>": 151661,
20
+ "<|im_end|>": 151645,
21
+ "<|im_start|>": 151644,
22
+ "<|image_pad|>": 151655,
23
+ "<|object_ref_end|>": 151647,
24
+ "<|object_ref_start|>": 151646,
25
+ "<|quad_end|>": 151651,
26
+ "<|quad_start|>": 151650,
27
+ "<|repo_name|>": 151663,
28
+ "<|sil|>": 151673,
29
+ "<|video_pad|>": 151656,
30
+ "<|vision_end|>": 151653,
31
+ "<|vision_pad|>": 151654,
32
+ "<|vision_start|>": 151652
33
+ }
chat_template.jinja ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "FunAudioChatForConditionalGeneration"
4
+ ],
5
+ "audio_config": {
6
+ "activation_dropout": 0,
7
+ "activation_function": "gelu",
8
+ "attention_dropout": 0,
9
+ "bos_token_id": 6561,
10
+ "codebook_size": 6565,
11
+ "continuous_features_mode": "replace",
12
+ "crq_transformer_config": {
13
+ "architectures": [
14
+ "Qwen3ForCausalLM"
15
+ ],
16
+ "attention_bias": false,
17
+ "attention_dropout": 0.0,
18
+ "bos_token_id": 151643,
19
+ "eos_token_id": 151643,
20
+ "head_dim": 128,
21
+ "hidden_act": "silu",
22
+ "hidden_size": 1024,
23
+ "initializer_range": 0.02,
24
+ "intermediate_size": 3072,
25
+ "max_position_embeddings": 32768,
26
+ "max_window_layers": 28,
27
+ "model_type": "qwen3",
28
+ "num_attention_heads": 16,
29
+ "num_hidden_layers": 28,
30
+ "num_key_value_heads": 8,
31
+ "rms_norm_eps": 1e-06,
32
+ "rope_scaling": null,
33
+ "rope_theta": 1000000,
34
+ "sliding_window": null,
35
+ "tie_word_embeddings": true,
36
+ "torch_dtype": "bfloat16",
37
+ "transformers_version": "4.51.0",
38
+ "use_cache": true,
39
+ "use_sliding_window": false,
40
+ "vocab_size": 151936
41
+ },
42
+ "d_model": 1280,
43
+ "dropout": 0,
44
+ "enable_audio_invert_tower": true,
45
+ "encoder_attention_heads": 20,
46
+ "encoder_ffn_dim": 5120,
47
+ "encoder_layers": 32,
48
+ "eos_token_id": 6562,
49
+ "group_size": 5,
50
+ "initializer_range": 0.02,
51
+ "max_source_positions": 1500,
52
+ "model_type": "funaudiochat_audio_encoder",
53
+ "n_window": 100,
54
+ "num_hidden_layers": 32,
55
+ "num_mel_bins": 128,
56
+ "output_dim": 4096,
57
+ "pad_token_id": 6563,
58
+ "scale_embedding": false,
59
+ "torch_dtype": "bfloat16"
60
+ },
61
+ "audio_token_index": 151669,
62
+ "ignore_index": -100,
63
+ "model_type": "funaudiochat",
64
+ "text_config": {
65
+ "architectures": [
66
+ "Qwen3ForCausalLM"
67
+ ],
68
+ "attention_bias": false,
69
+ "attention_dropout": 0.0,
70
+ "audio_bos_index": 151670,
71
+ "audio_eos_index": 151671,
72
+ "bos_token_id": 151643,
73
+ "eos_token_id": 151643,
74
+ "head_dim": 128,
75
+ "hidden_act": "silu",
76
+ "hidden_size": 4096,
77
+ "initializer_range": 0.02,
78
+ "intermediate_size": 12288,
79
+ "max_position_embeddings": 262144,
80
+ "max_window_layers": 28,
81
+ "model_type": "qwen3",
82
+ "num_attention_heads": 32,
83
+ "num_hidden_layers": 36,
84
+ "num_key_value_heads": 8,
85
+ "rms_norm_eps": 1e-06,
86
+ "rope_scaling": null,
87
+ "rope_theta": 5000000,
88
+ "sil_index": 151673,
89
+ "sliding_window": null,
90
+ "torch_dtype": "bfloat16",
91
+ "use_cache": false,
92
+ "use_sliding_window": false,
93
+ "vocab_size": 151936
94
+ },
95
+ "torch_dtype": "bfloat16",
96
+ "transformers_version": "4.52.3",
97
+ "use_cache": false
98
+ }
generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 151645,
6
+ 151643
7
+ ],
8
+ "pad_token_id": 151643,
9
+ "temperature": 0.6,
10
+ "top_k": 20,
11
+ "top_p": 0.95,
12
+ "max_new_tokens": 2048,
13
+ "transformers_version": "4.52.3"
14
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model-00001-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e5880244bf45259e88130d02df4b48ca7123eb1657ff2b20b8bba55db78dfbd6
3
+ size 4973585392
model-00002-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5e621d7c1bebf2ede87676211d6cffb6e8e8bdbe9140fa93986d9c2841475518
3
+ size 4999848368
model-00003-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:67f5e9ea1cfac595aab7cc5f37a1ca0bc9c426bf8832c73012a042108975522f
3
+ size 4983071360
model-00004-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8ccc39175d270d9d62f5c51f8e8485a332ad69a0d23e109dfaea421e454d12b0
3
+ size 3945928280
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
preprocessor_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "chunk_length": 300,
3
+ "dither": 0.0,
4
+ "feature_extractor_type": "WhisperFeatureExtractor",
5
+ "feature_size": 128,
6
+ "hop_length": 160,
7
+ "n_fft": 400,
8
+ "n_samples": 4800000,
9
+ "nb_max_frames": 30000,
10
+ "padding_side": "right",
11
+ "padding_value": 0.0,
12
+ "processor_class": "FunAudioChatProcessor",
13
+ "return_attention_mask": true,
14
+ "sampling_rate": 16000
15
+ }
processor_config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio_bos_token": "<|audio_bos|>",
3
+ "audio_eos_token": "<|audio_eos|>",
4
+ "audio_group_size": 5,
5
+ "audio_pad_token": "<|audio_pad|>",
6
+ "audio_token": "<|AUDIO|>",
7
+ "processor_class": "FunAudioChatProcessor"
8
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>",
16
+ "<|AUDIO|>",
17
+ "<|audio_bos|>",
18
+ "<|audio_eos|>",
19
+ "<|audio_pad|>",
20
+ "<|sil|>"
21
+ ],
22
+ "audio_bos_token": "<|audio_bos|>",
23
+ "audio_eos_token": "<|audio_eos|>",
24
+ "audio_pad_token": "<|audio_pad|>",
25
+ "audio_token": "<|AUDIO|>",
26
+ "eos_token": {
27
+ "content": "<|im_end|>",
28
+ "lstrip": false,
29
+ "normalized": false,
30
+ "rstrip": false,
31
+ "single_word": false
32
+ },
33
+ "pad_token": {
34
+ "content": "<|endoftext|>",
35
+ "lstrip": false,
36
+ "normalized": false,
37
+ "rstrip": false,
38
+ "single_word": false
39
+ },
40
+ "text_sil_token": "<|sil|>"
41
+ }
speech_tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|endoftext|>"
4
+ ],
5
+ "bos_token": {
6
+ "content": "<|audio_bos|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false
11
+ },
12
+ "eos_token": {
13
+ "content": "<|audio_eos|>",
14
+ "lstrip": false,
15
+ "normalized": false,
16
+ "rstrip": false,
17
+ "single_word": false
18
+ },
19
+ "pad_token": {
20
+ "content": "<|audio_pad|>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false
25
+ }
26
+ }
speech_tokenizer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
speech_tokenizer/tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a7d58d42d29ac0776a3d5a6e6746fb0fe79dfe65fafa947f3dd76da528a02fe
3
+ size 11423594
tokenizer_config.json ADDED
@@ -0,0 +1,296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ },
213
+ "151669": {
214
+ "content": "<|AUDIO|>",
215
+ "lstrip": false,
216
+ "normalized": false,
217
+ "rstrip": false,
218
+ "single_word": false,
219
+ "special": true
220
+ },
221
+ "151670": {
222
+ "content": "<|audio_bos|>",
223
+ "lstrip": false,
224
+ "normalized": false,
225
+ "rstrip": false,
226
+ "single_word": false,
227
+ "special": true
228
+ },
229
+ "151671": {
230
+ "content": "<|audio_eos|>",
231
+ "lstrip": false,
232
+ "normalized": false,
233
+ "rstrip": false,
234
+ "single_word": false,
235
+ "special": true
236
+ },
237
+ "151672": {
238
+ "content": "<|audio_pad|>",
239
+ "lstrip": false,
240
+ "normalized": false,
241
+ "rstrip": false,
242
+ "single_word": false,
243
+ "special": true
244
+ },
245
+ "151673": {
246
+ "content": "<|sil|>",
247
+ "lstrip": false,
248
+ "normalized": false,
249
+ "rstrip": false,
250
+ "single_word": false,
251
+ "special": true
252
+ }
253
+ },
254
+ "additional_special_tokens": [
255
+ "<|im_start|>",
256
+ "<|im_end|>",
257
+ "<|object_ref_start|>",
258
+ "<|object_ref_end|>",
259
+ "<|box_start|>",
260
+ "<|box_end|>",
261
+ "<|quad_start|>",
262
+ "<|quad_end|>",
263
+ "<|vision_start|>",
264
+ "<|vision_end|>",
265
+ "<|vision_pad|>",
266
+ "<|image_pad|>",
267
+ "<|video_pad|>",
268
+ "<|AUDIO|>",
269
+ "<|audio_bos|>",
270
+ "<|audio_eos|>",
271
+ "<|audio_pad|>",
272
+ "<|sil|>"
273
+ ],
274
+ "audio_bos_token": "<|audio_bos|>",
275
+ "audio_eos_token": "<|audio_eos|>",
276
+ "audio_pad_token": "<|audio_pad|>",
277
+ "audio_token": "<|AUDIO|>",
278
+ "bos_token": null,
279
+ "clean_up_tokenization_spaces": false,
280
+ "eos_token": "<|im_end|>",
281
+ "errors": "replace",
282
+ "extra_special_tokens": {
283
+ "audio_bos_token": "<|audio_bos|>",
284
+ "audio_eos_token": "<|audio_eos|>",
285
+ "audio_pad_token": "<|audio_pad|>",
286
+ "audio_token": "<|AUDIO|>",
287
+ "text_sil_token": "<|sil|>"
288
+ },
289
+ "model_max_length": 1010000,
290
+ "pad_token": "<|endoftext|>",
291
+ "padding_side": "right",
292
+ "split_special_tokens": false,
293
+ "text_sil_token": "<|sil|>",
294
+ "tokenizer_class": "Qwen2Tokenizer",
295
+ "unk_token": null
296
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff