Qwen3-ASR-0.6B在Ubuntu20.04环境下的保姆级安装与部署教程你是不是也对语音识别技术感兴趣想自己动手搭建一个本地环境来玩玩今天我就带你一步步在Ubuntu 20.04系统上把Qwen3-ASR-0.6B这个轻量级的语音识别模型给跑起来。整个过程就像搭积木跟着我的步骤走即使你之前没怎么接触过也能顺利搞定。我们不光要把它装好还要启动一个简单的Web界面让你能直接上传音频文件试试效果。1. 开始之前看看你的“工具箱”在动手安装之前我们先花几分钟检查一下你的电脑环境。这就像做饭前要看看厨房里有没有锅碗瓢盆一样准备工作做好了后面才能顺顺利利。首先你需要一台安装了Ubuntu 20.04操作系统的电脑或服务器。这个版本比较稳定社区支持也广是很多开发者的选择。然后我们主要依赖两个核心工具Python和CUDA。Python是运行我们所有代码的“翻译官”。Qwen3-ASR-0.6B模型和相关框架都是用Python写的。我们推荐使用Python 3.8到3.10之间的版本太老或太新的版本可能会遇到一些依赖库不兼容的小麻烦。CUDA则是让模型“跑得快”的关键。如果你的电脑有NVIDIA的显卡CUDA可以利用显卡来加速计算让语音识别的速度快很多。没有显卡也能运行只是速度会慢一些完全依赖电脑的CPU来算。怎么检查呢打开你的终端快捷键CtrlAltT输入下面几条命令看看。# 检查Python版本 python3 --version # 检查是否安装了pipPython的包管理工具 pip3 --version # 检查CUDA版本如果有NVIDIA显卡的话 nvidia-smi运行nvidia-smi后如果能看到显卡信息和CUDA版本号比如CUDA 11.7、12.1等那就说明驱动和CUDA都装好了。如果提示命令找不到那可能就需要先安装NVIDIA的驱动和CUDA工具包这个我们后面会简单提一下。2. 搭建基础环境安装必备的“零件”环境检查没问题我们就可以开始安装各种必需的“零件”了。这一步我们主要用pip这个工具来安装Python的第三方库。我建议你先创建一个独立的Python虚拟环境。这就像给你的这个项目单独准备一个干净的房间里面安装的软件包不会影响到系统里其他的Python项目避免版本冲突。创建和激活虚拟环境的命令如下# 安装创建虚拟环境的工具如果系统里没有的话 sudo apt update sudo apt install python3-venv -y # 创建一个名为‘qwen_asr_env’的虚拟环境 python3 -m venv qwen_asr_env # 激活这个虚拟环境 source qwen_asr_env/bin/activate激活后你的命令行前面通常会显示(qwen_asr_env)表示你已经在这个虚拟环境里了。接下来所有的安装操作都是在这个环境里进行的。现在我们来安装最核心的几个库PyTorch这是一个非常流行的深度学习框架我们的模型运行需要它。Transformers这是Hugging Face公司开发的库提供了加载和使用各种预训练模型包括Qwen3-ASR的超级简便方法。其他辅助库比如librosa或soundfile用来读取音频文件flask用来搭建我们后面的Web小界面。安装PyTorch时需要根据你的CUDA版本选择对应的命令。你可以去PyTorch官网查看最新的安装命令。假设你的CUDA版本是11.8可以这样安装# 安装PyTorch及相关计算库请根据你的CUDA版本调整 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 安装Transformers库和音频处理库 pip3 install transformers pip3 install librosa soundfile # 安装Flask用于创建Web服务 pip3 install flask如果网络不太好下载速度慢可以考虑临时使用国内的镜像源比如清华源在pip install命令后面加上-i https://pypi.tuna.tsinghua.edu.cn/simple。3. 获取模型把“大脑”请回家基础环境搭好了接下来就是把Qwen3-ASR-0.6B这个模型的“大脑”——也就是它的权重文件下载到我们的电脑上。模型文件有点大需要一点耐心。通常这类预训练模型会发布在Hugging Face的模型库Model Hub上。我们可以直接用transformers库提供的代码来下载它会自动处理缓存。这里我给你提供一个简单的Python脚本运行它就可以下载模型。在你喜欢的位置比如你的家目录~下创建一个新文件夹叫qwen_asr_demo然后在这个文件夹里创建一个Python脚本文件比如叫download_model.py。# download_model.py from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor # 指定模型在Hugging Face上的名称 model_name Qwen/Qwen3-ASR-0.6B print(f开始下载模型: {model_name}这可能需要几分钟请耐心等待...) # 下载并加载模型 model AutoModelForSpeechSeq2Seq.from_pretrained(model_name) # 下载并加载对应的处理器负责音频预处理和文本后处理 processor AutoProcessor.from_pretrained(model_name) print(模型下载完成) print(f模型保存位置: {model.name_or_path})保存文件后在终端里运行它cd ~/qwen_asr_demo python download_model.py下载过程会显示进度条。完成后模型文件通常会保存在你的用户目录下的一个缓存文件夹里比如~/.cache/huggingface/hub。这样下次再加载时就不用重新下载了。4. 创建Web应用给它一个“操作界面”模型已经就位但直接写代码调用对新手来说可能不太直观。我们做一个简单的Web页面你可以通过浏览器上传音频文件然后看到识别出的文字结果这样体验更直接。我们在同一个qwen_asr_demo文件夹里再创建两个文件一个主应用文件app.py一个存放网页模板的文件夹templates里面放一个index.html文件。先看app.py这是后端逻辑# app.py import os from flask import Flask, request, render_template, jsonify import torch from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor import librosa import soundfile as sf app Flask(__name__) # 全局加载模型和处理器避免每次请求都重复加载 print(正在加载语音识别模型请稍候...) model_name Qwen/Qwen3-ASR-0.6B model AutoModelForSpeechSeq2Seq.from_pretrained(model_name) processor AutoProcessor.from_pretrained(model_name) device cuda:0 if torch.cuda.is_available() else cpu model.to(device) print(f模型加载完成运行在: {device}) # 确保有一个上传文件夹 UPLOAD_FOLDER uploads os.makedirs(UPLOAD_FOLDER, exist_okTrue) app.config[UPLOAD_FOLDER] UPLOAD_FOLDER app.route(/) def index(): 显示主页面 return render_template(index.html) app.route(/transcribe, methods[POST]) def transcribe_audio(): 处理音频上传和转录 if audio_file not in request.files: return jsonify({error: 没有选择文件}), 400 file request.files[audio_file] if file.filename : return jsonify({error: 文件名为空}), 400 # 保存上传的文件 filepath os.path.join(app.config[UPLOAD_FOLDER], file.filename) file.save(filepath) try: # 读取音频文件 speech_array, sampling_rate librosa.load(filepath, sr16000) # 将音频重采样到16kHz # 使用处理器准备模型输入 inputs processor(speech_array, sampling_ratesampling_rate, return_tensorspt) inputs inputs.to(device) # 模型推理 with torch.no_grad(): predicted_ids model.generate(**inputs) # 将模型输出的ID解码为文字 transcription processor.batch_decode(predicted_ids, skip_special_tokensTrue)[0] result { filename: file.filename, transcription: transcription } return jsonify(result) except Exception as e: return jsonify({error: f处理过程中出错: {str(e)}}), 500 finally: # 清理上传的临时文件可选 if os.path.exists(filepath): os.remove(filepath) if __name__ __main__: app.run(host0.0.0.0, port5000, debugTrue)然后是前端的页面templates/index.html!DOCTYPE html html head titleQwen3-ASR 语音识别演示/title style body { font-family: Arial, sans-serif; max-width: 800px; margin: 40px auto; padding: 20px; } .container { border: 1px solid #ddd; padding: 30px; border-radius: 10px; } h1 { color: #333; } .upload-box { border: 2px dashed #ccc; padding: 40px; text-align: center; margin: 20px 0; border-radius: 5px; } button { background-color: #4CAF50; color: white; padding: 12px 24px; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; } button:hover { background-color: #45a049; } #result { margin-top: 30px; padding: 20px; background-color: #f9f9f9; border-radius: 5px; display: none; } #loading { display: none; color: #2196F3; margin-top: 10px; } /style /head body div classcontainer h1Qwen3-ASR-0.6B 语音识别测试/h1 p上传一个音频文件支持wav, mp3等格式模型会将其转换为文字。/p div classupload-box input typefile idaudioInput acceptaudio/* p或者将音频文件拖拽到此处/p /div button onclickuploadAudio()开始识别/button div idloading正在处理中请稍候.../div div idresult h3识别结果/h3 pstrong文件名/strongspan idfileName/span/p pstrong文本内容/strong/p div idtextOutput stylebackground: white; padding: 15px; border: 1px solid #eee;/div /div /div script function uploadAudio() { const fileInput document.getElementById(audioInput); const file fileInput.files[0]; if (!file) { alert(请先选择一个音频文件); return; } const formData new FormData(); formData.append(audio_file, file); // 显示加载提示 document.getElementById(loading).style.display block; document.getElementById(result).style.display none; fetch(/transcribe, { method: POST, body: formData }) .then(response response.json()) .then(data { document.getElementById(loading).style.display none; if (data.error) { alert(错误 data.error); return; } // 显示结果 document.getElementById(fileName).textContent data.filename; document.getElementById(textOutput).textContent data.transcription; document.getElementById(result).style.display block; }) .catch(error { document.getElementById(loading).style.display none; alert(上传失败 error); }); } // 支持拖拽上传 const uploadBox document.querySelector(.upload-box); uploadBox.addEventListener(dragover, (e) { e.preventDefault(); uploadBox.style.borderColor #4CAF50; uploadBox.style.backgroundColor #f0fff0; }); uploadBox.addEventListener(dragleave, () { uploadBox.style.borderColor #ccc; uploadBox.style.backgroundColor ; }); uploadBox.addEventListener(drop, (e) { e.preventDefault(); uploadBox.style.borderColor #ccc; uploadBox.style.backgroundColor ; const fileInput document.getElementById(audioInput); fileInput.files e.dataTransfer.files; }); /script /body /html5. 运行与测试看看效果如何所有文件都准备好了现在让我们启动这个服务看看效果。确保你的终端还在虚拟环境里并且位于项目目录qwen_asr_demo下。首先运行我们的Flask应用python app.py如果一切正常你会看到类似这样的输出正在加载语音识别模型请稍候... 模型加载完成运行在: cuda:0 * Serving Flask app app * Debug mode: on * Running on all addresses (0.0.0.0) * Running on http://127.0.0.1:5000 * Running on http://192.168.x.x:5000这表示你的本地Web服务已经启动起来了。打开你的浏览器输入地址http://127.0.0.1:5000就能看到我们刚刚做好的上传页面了。怎么测试呢准备一个音频文件。可以用手机录一段话或者找一段已有的.wav或.mp3文件。内容清晰、背景噪音小的音频识别效果会更好。在网页上点击“选择文件”按钮或者直接把音频文件拖到虚线框里。点击“开始识别”按钮。稍等几秒到十几秒取决于音频长度和你的电脑性能下方就会显示出识别出来的文字内容了。第一次推理时模型可能需要一点时间初始化耐心等一下。如果识别结果不理想可以试试发音更清晰、语速更平缓的音频。6. 可能遇到的问题和解决办法在部署过程中你可能会遇到一两个小麻烦别担心这都很常见。问题运行pip install时速度慢或失败。解决使用国内的PyPI镜像源。可以在安装命令后面加上-i https://pypi.tuna.tsinghua.edu.cn/simple。或者创建一个pip配置文件永久更改。问题提示“CUDA不可用”或“Torch not compiled with CUDA enabled”。解决这通常意味着PyTorch的CUDA版本和系统安装的CUDA版本不匹配。请回到第二步根据你的nvidia-smi显示的CUDA版本去PyTorch官网找到对应的安装命令。如果确实没有NVIDIA显卡模型会自动使用CPU运行只是速度会慢。问题运行app.py时提示端口5000被占用。解决可以修改app.py最后一行换一个端口比如app.run(host0.0.0.0, port5001, debugTrue)然后浏览器访问http://127.0.0.1:5001。问题模型下载中断或失败。解决网络不稳定可能导致下载失败。可以尝试重新运行download_model.py脚本或者手动设置环境变量HF_ENDPOINThttps://hf-mirror.com来使用国内镜像然后再次运行下载脚本。问题网页可以打开但上传音频后长时间没反应或报错。解决首先查看运行app.py的终端窗口那里会有详细的错误信息。常见原因可能是音频格式不支持可以尝试转换为.wav格式单声道采样率16kHz或以上。也可能是缺少某个音频解码库可以尝试安装ffmpegsudo apt install ffmpeg。7. 总结跟着上面这些步骤走一遍你应该已经在自己的Ubuntu 20.04电脑上成功搭建起一个能用的Qwen3-ASR-0.6B语音识别环境了并且还有一个简单直观的网页可以操作。整个过程最关键的就是环境配置和依赖安装只要这一步没出错后面基本上就是水到渠成。这个部署好的环境已经是一个很好的起点了。你可以基于这个app.py继续修改比如增加批量处理文件的功能或者把识别结果保存下来。也可以尝试用不同的音频去测试看看这个模型在哪些场景下表现好哪些场景下还有提升空间。语音识别的世界很大从今天这个小小的demo开始你已经迈出了第一步。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。