You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DeepSpeech进行语音转写时如何调用GPU实现加速

解决DeepSpeech转写未调用GPU的问题

前置检查

  • 先确认Colab运行时已切换GPU硬件加速:路径为「代码执行程序」→「更改运行时类型」→ 硬件加速器选择「GPU」,保存后重启运行时
  • 确认仅安装了和模型版本匹配的GPU包:执行!pip uninstall -y deepspeech && pip install deepspeech-gpu==0.9.3,避免CPU版本冲突
  • 执行!nvidia-smi确认系统可以正常识别GPU设备,DeepSpeech 0.9.3适配CUDA 10.1、cuDNN 7.6版本,环境不匹配会自动回退到CPU运行

代码修改说明

原代码一次性加载全量20分钟音频进行推理,不仅内存占用高,也无法充分利用GPU并行能力,改为流式推理可大幅提升效率,同时确保GPU被正常调用,修改后代码如下:

import wave
import deepspeech
import numpy as np

# 模型路径和参数配置
model_file_path = 'deepspeech-0.9.3-models.pbmm'
scorer_file_path = 'deepspeech-0.9.3-models.scorer' # 可选,提升识别准确率,需要提前下载对应版本scorer文件
model = deepspeech.Model(model_file_path)
model.enableExternalScorer(scorer_file_path) # 不需要scorer可注释该行

# 音频流式读取配置
filename = 'podcast.wav'
w = wave.open(filename, 'r')
rate = w.getframerate()
# 确认音频采样率为16kHz,单声道,16位深,不符合的话需要提前转格式
assert rate == 16000, "音频需为16kHz采样率"
assert w.getnchannels() == 1, "音频需为单声道"
assert w.getsampwidth() == 2, "音频需为16位深"

# 初始化流式上下文
stream_ctx = model.createStream()
# 每次读取3200帧(200ms)音频送入推理
chunk_size = 3200

while True:
    buffer = w.readframes(chunk_size)
    if not buffer:
        break
    data16 = np.frombuffer(buffer, dtype=np.int16)
    stream_ctx.feedAudioContent(data16)

# 获取最终转写结果
text = stream_ctx.finishStream()

验证GPU调用

运行代码的同时,在Colab的终端执行nvidia-smi,可以看到deepspeech进程占用GPU显存,即说明GPU已正常启用。20分钟的16kHz单声道音频,在Colab T4 GPU上转写耗时通常不会超过1分钟。

内容的提问来源于stack exchange,提问作者mmz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:02