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

如何在Flask中无需保存文件,用pydub处理音频并通过Vosk转文字

无需保存文件实现Flask音频转文本

当然可以实现不将音频文件保存到服务器的需求,直接在内存中完成音频格式转换与语音识别即可。下面是修改后的代码:

from flask import Flask, request, json
from vosk import Model, KaldiRecognizer, SetLogLevel
from pydub import AudioSegment

app = Flask(__name__)
@app.route('/', methods=['POST'])

def process_audio():
    # 获取上传的音频文件
    file = request.files['111'] 
    # 直接从内存加载音频,无需保存到磁盘
    song = AudioSegment.from_file(file)
    
    SetLogLevel(0)
    FRAME_RATE = 16000
    CHANNELS = 1

    model = Model("model")
    rec = KaldiRecognizer(model, FRAME_RATE)
    rec.SetWords(True)
 
    # 在内存中调整音频参数,无需导出文件
    processed_audio = song.set_channels(CHANNELS).set_frame_rate(FRAME_RATE)
    
    # 直接传入内存中的音频原始数据进行识别
    rec.AcceptWaveform(processed_audio.raw_data)
    result = rec.Result()
    text = json.loads(result)["text"]

    return text

关键改动说明:

  • 移除了磁盘写入与重新读取的步骤,全程在内存中处理音频数据
  • 直接对从请求中加载的AudioSegment对象调整声道数和采样率,无需导出文件
  • 直接传入内存中的音频原始字节数据给Vosk识别,省略文件IO操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:45:16