HY-2012 commited on
Commit
3888b28
·
verified ·
1 Parent(s): d835364

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +219 -0
README.md ADDED
@@ -0,0 +1,219 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ language:
4
+ - en
5
+ - zh
6
+ pipeline_tag: audio-to-audio
7
+ base_model:
8
+ - FunAudioLLM/SenseVoiceSmall
9
+ - qwen2.5
10
+ - MeloTTS
11
+ tags:
12
+ - VAD
13
+ - ASR
14
+ - LLM
15
+ - TTS
16
+ ---
17
+
18
+
19
+ # Spoken-Communication.axera
20
+
21
+ spoken communication demo on Axera
22
+
23
+ - [x] Python 示例
24
+ - [ ] C++ 示例
25
+
26
+ ## Convert tools links:
27
+
28
+ For those who are interested in model conversion, you can try to export axmodel through the original repo :
29
+ How to Convert from ONNX to axmodel
30
+ - [ASR](https://github.com/AXERA-TECH/3D-Speaker-MT.axera/tree/main/model_convert)
31
+ - [MeloTTS](https://github.com/ml-inory/melotts.axera/tree/main/model_convert)
32
+
33
+ ## 支持平台
34
+
35
+ - AX650N
36
+
37
+ ## 功能
38
+
39
+ 语音交流
40
+
41
+ ## Pipeline组件
42
+
43
+ - [ASR](https://github.com/AXERA-TECH/3D-Speaker-MT.axera/tree/main)
44
+ - [LLM](https://github.com/AXERA-TECH/ax-llm/tree/ax-context),参考生成库文件,保存到libaxllm
45
+ - [MeloTTS](https://github.com/ml-inory/melotts.axera/tree/main/python)
46
+
47
+ ## 上板部署
48
+
49
+ - AX650N 的设备已预装 Ubuntu22.04
50
+ - 以 root 权限登陆 AX650N 的板卡设备
51
+ - 链接互联网,确保 AX650N 的设备能正常执行 apt install, pip install 等指令
52
+ - 已验证设备:AX650N DEMO Board
53
+
54
+ ## Python API 运行
55
+
56
+ 在python3.10(验证)
57
+
58
+ ### pipeline方案:ASR + LLM(Qwen) + MeloTTS
59
+
60
+ ```
61
+ 支持板端运行及算力卡模式运行
62
+ ```
63
+
64
+ ### 工程下载
65
+ ```
66
+ git clone https://huggingface.co/AXERA-TECH/Spoken-Communication.axera 或者
67
+ hf download AXERA-TECH/Spoken-Communication.axera --local-dir Spoken-Communication.axera
68
+
69
+ cd Spoken-Communication.axera
70
+
71
+ 工程目录文件结构如下:
72
+ .
73
+ |-- README.md
74
+ |-- ax_model
75
+ |-- ax_spoken_communication_demo.py
76
+ |-- config.json
77
+ |-- libaxllm
78
+ |-- libmelotts
79
+ |-- model.py
80
+ |-- requirements.txt
81
+ |-- utils
82
+ `-- input_question
83
+
84
+ ```
85
+
86
+ ### 具体流程
87
+
88
+ **板端 demo**
89
+
90
+ 1、安装依赖库
91
+
92
+ ```
93
+ 1):
94
+ 如果环境中没有axengine,下载安装,位置任意
95
+ hf download AXERA-TECH/PyAXEngine --local-dir PyAXEngine
96
+ cd PyAXEngine
97
+ pip3 install axengine-0.1.3-py3-none-any.whl
98
+
99
+ 2):
100
+ cd Spoken-Communication.axera
101
+ pip3 install -r requirements.txt
102
+
103
+ 3):
104
+ apt install espeak 或者
105
+ sudo apt install espeak
106
+ ```
107
+
108
+ 2、模型下载
109
+
110
+ ```
111
+ 主目录下执行命令:
112
+ hf download AXERA-TECH/Qwen2.5-1.5B-Instruct --local-dir libaxllm --include qwen2.5-1.5b-ctx-ax650/*
113
+ 模型下载至libaxllm文件夹
114
+
115
+ hf download AXERA-TECH/Speech-Translation.axera --local-dir . --include ax_model/vad.axmodel
116
+ 模型下载至ax_model文件夹
117
+ ```
118
+
119
+ 3、在开发板运行以下命令
120
+
121
+ ```
122
+ 1)、运行qwen api
123
+ cd libaxllm
124
+
125
+ 启动支持上下文的 tokenizer 服务器
126
+ python3 qwen2.5_tokenizer_uid.py
127
+
128
+ 运行
129
+ sh run_qwen2.5_1.5b_ctx_ax650_api.sh
130
+
131
+ 2)、运行pipeline板端demo
132
+ cd ..
133
+
134
+ python3 ax_spoken_communication_demo.py --audio_dir input_question --output_dir output_answer --api_url http://10.126.29.158:8000
135
+
136
+ 运行参数说明:
137
+
138
+ | 参数名称 | 说明|
139
+ |-------|------|
140
+ | `--audio_dir` | 音频路径 |
141
+ | `--api_url` | qwen API服务地址,对应其运行服务器 |
142
+ | `--output_dir` | 结果保存路径 |
143
+ ```
144
+
145
+ 输出:
146
+ 1、与输入音频相对应的wav文件,
147
+ 2、识别信息保存成txt文件 -> "output_answer/processing_summary.txt",如下:
148
+ ```
149
+ 批量处理结果汇总
150
+ ==================================================
151
+
152
+ 文件 1: Q1.wav
153
+ 原始文本: 人工智能和人类智能最本质的区别是什么?。
154
+ 回答结果: 人工智能和人类智能最本质的区别在于,人工智能是基于算法和数据进行学习和决策的机器智能,而人类智能是基于经验和直觉进行思考和决策的生物智能。
155
+ 合成音频: Q1_answer.wav
156
+ 处理时间: 8.22 秒
157
+ 音频时长: 15.19 秒
158
+ RTF: 0.54
159
+ --------------------------------------------------
160
+ 文件 2: Q2.wav
161
+ 原始文本: 人工智能没有思想,为什么他能创作出震撼人心的艺术?。
162
+ 回答结果: 人工智能创作艺术是因为它可以通过算法和数据进行学习和分析,理解艺术作品的风格、情感和意义,然后通过生成模型进行创作。这与人类艺术家创作艺术的灵感、经验和直觉不同,但人工智能在某些领域已经表现出超越人类的能力。
163
+ 合成音频: Q2_answer.wav
164
+ 处理时间: 9.43 秒
165
+ 音频时长: 23.68 秒
166
+ RTF: 0.40
167
+ --------------------------------------------------
168
+ 文件 3: Q3.wav
169
+ 原始文本: 人工智能最终会统治人类吗?。
170
+ 回答结果: 人工智能的发展可能会对人类社会产生重大影响,但目前来看,人工智能尚未达到能够统治人类的程度。人工智能主要是在特定任务上表现出色,如数据分析、图像识别等,但在决策、伦理和情感理解等方面仍存在局限。
171
+ 合成音频: Q3_answer.wav
172
+ 处理时间: 8.86 秒
173
+ 音频时长: 22.62 秒
174
+ RTF: 0.39
175
+ --------------------------------------------------
176
+
177
+ 总计: 3 个文件
178
+ 总处理时间: 26.53 秒
179
+ ```
180
+
181
+ 4、Latency
182
+
183
+ AX650N
184
+
185
+ RTF: 约为0.4,如上例。
186
+
187
+
188
+ **算力卡demo**
189
+
190
+ 运行步骤与板端demo大致相同,以aarch64环境为例:
191
+ ```
192
+ 1、运行qwen api
193
+ cd libaxllm
194
+
195
+ 启动支持上下文的 tokenizer 服务器
196
+ python3 qwen2.5_tokenizer_uid.py
197
+
198
+ 运行对应环境的api
199
+ sh run_qwen2.5_1.5b_ctx_axcl_aarch64_api.sh
200
+
201
+ 2、运行pipeline算力卡demo
202
+ cd ..
203
+ python3 ax_spoken_communication_demo.py --audio_dir input_question --api_url http://10.126.33.13:8000 --output_dir output
204
+ ```
205
+ x86环境运行步骤同上
206
+
207
+
208
+
209
+ ## 参考
210
+ - [sensevoice.axera](https://github.com/ml-inory/sensevoice.axera/tree/main)
211
+ - [3D-Speaker.axera](https://github.com/AXERA-TECH/3D-Speaker.axera/tree/master)
212
+ - [melotts.axera](https://github.com/ml-inory/melotts.axera/tree/main)
213
+ - [ax-llm](https://github.com/AXERA-TECH/ax-llm/tree/ax-context)
214
+
215
+
216
+ ## 技术讨论
217
+
218
+ - Github issues
219
+ - QQ 群: 139953715