1,视频地址
https://www.bilibili.com/video/BV1Z7421K7vL/
【xinference】(3):在autodl上,使用xinference部署whisper-tiny音频模型,并成功将语音转换成文本
2,项目地址
https://inference.readthedocs.io/zh-cn/latest/user_guide/model_abilities/audio.html
模型需要执行脚本启动:
pip3 install "xinference[all]"
apt update && apt install -y ffmpeg
# 设置学术加速,不再区分不同地区
# https://www.autodl.com/docs/network_turbo/
source /etc/network_turbo
export XINFERENCE_MODEL_SRC=modelscope
export XINFERENCE_HOME=/root/autodl-tmp
# 首先启动 xinference-local :
xinference-local --host 0.0.0.0 --port 9997
3,下载模型
执行命令:
# 大模型
xinference launch --model-uid whisper-1 --model-name whisper-large-v3 --model-type audio
# 小模型
xinference launch --model-uid whisper-1 --model-name whisper-tiny --model-type audio
如果大模型下载异常,可以使用小模型下载。
启动成功,占用显存 3G
nvidia-smi
Wed Jan 31 23:54:27 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.146.02 Driver Version: 535.146.02 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3080 On | 00000000:86:00.0 Off | N/A |
| 0% 25C P8 15W / 320W | 3405MiB / 20480MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
+---------------------------------------------------------------------------------------+
4,测试代码
from xinference.client import Client
client = Client("http://localhost:9997")
# xinference launch --model-uid whisper-1 --model-name whisper-tiny --model-type audio
# model_uid = client.launch_model(model_uid="whisper-1",model_name="whisper-tiny", model_type="audio")
# whisper-tiny
model = client.get_model("whisper-1")
input_text = "an apple"
with open("voice-test.mp3", "rb") as audio_file:
out = model.transcriptions(audio_file.read())
print(out['text'])
执行结果:
本列表列出香港航空的航点,正确。
音频文件在这里:
https://github.com/xorbitsai/inference/tree/main/xinference/model/audio/tests
5,总结
确实可以运行音频大模型。可以将音频文件转换成文本。
可以做啥呢?可以直接录用转文字,或者做字幕。
transcriptions 是音频转文本
translations 可以直接将音频翻译成英文。
使用large 模型就可以翻译:
本列表列出香港航空的航点 > 翻译成:
This list lists the airlines in Hong Kong.
还集成了翻译模块。
总结
**文章总结**本文介绍了如何使用`xinference`工具在AutoDL平台上部署`whisper-tiny`音频模型,实现从语音到文本的成功转换。以下是具体步骤和要点总结:
1. **视频示范**: 提供了Bilibili视频链接,展示了整个部署和测试过程(https://www.bilibili.com/video/BV1Z7421K7vL/)。
2. **项目文档与安装**:
- 项目详细地址:https://inference.readthedocs.io/zh-cn/latest/user_guide/model_abilities/audio.html
- 通过安装`xinference[all]`和相关依赖(如`ffmpeg`),为部署音频模型做好准备。
- 设置学术加速和环境变量以方便模型部署与访问。
3. **模型部署与下载**:
- 使用`xinference launch`命令下载和启动`whisper`模型,支持大模型(`whisper-large-v3`)和小模型(`whisper-tiny`)的选择。
- NVIDIA-SMI显示了模型启动后GPU的使用情况,如显存占用。
4. **测试代码运行**:
- 通过`xinference`的客户端(Client)API向启动的本地服务发送请求,测试音频文件的转文本能力。
- 提供了一个简化的代码示例,展示了如何从文件读取音频、通过模型转换成文本,并打印输出结果。
5. **结果与功能拓展**:
- 信息转换准确,展示了`whisper-tiny`模型能有效将语音转为文本。
- 除了基础目录转文字功能外,`whisper`模型还支持直接将语音翻译成英文等语言翻译功能。
- 使用大模型`whisper-large-v3`可以进一步扩展至音频翻译等高级应用。
- 总体上看,利用`xinference`可以轻松实现高效的音频转文字与翻译,适用于录音转写、自动生成字幕等多种应用场景。