python系列&deep_study系列:实战whisper第三天:fast whisper 语音识别服务器部署,可远程访问,可商业化部署(全部代码和详细部署步骤)




实战whisper第三天:fast whisper 语音识别服务器部署,可远程访问,可商业化部署(全部代码和详细部署步骤)

在这里插入图片描述
在这里插入图片描述

Fast Whisper 是对 OpenAIWhisper 模型的一个优化版本,它旨在提高音频转录和语音识别任务的速度和效率。Whisper 是一种强大的多语言和多任务语音模型,可以用于语音识别、语音翻译和语音分类等任务。

Fast Whisper 的原理

Fast Whisper 是在原始 Whisper 模型的基础上进行的优化,这些优化主要集中在提高推理速度和降低资源消耗上。它通过以下方式实现这些目标:

模型剪枝和量化:

剪枝:通过减少模型中的参数数量(通常是去除那些对模型性能影响较小的参数),从而减少模型的复杂性和运行时内存需求。

量化:将模型的浮点运算转换为整数运算,这通常会显著减少模型大小和提升推理速度,特别是在支持整数运算的硬件上。

硬件优化:

Fast Whisper 针对特定的硬件架构(如 GPU 和 TPU)进行了优化,以更高效地利用这些硬件的并行处理能力。

更高效的解码器:

使用更高效的解码策略,比如更小的 beam size 或更快的贪心算法,来减少在生成预测时所需的计算量。

Fast Whisper 主要在以下方面进行了改进:

速度:通过上述技术,Fast Whisper 在进行语音到文本转录时的速度更快,这使得它更适合实时或接近实时的应用场景。

资源消耗:减少了模型的计算需求和内存占用,使得它可以在资源受限的设备上运行,如移动设备和嵌入式系统。

效果:在保持相似的识别准确率的同时,Fast Whisper 的主要优势是速度和效率。在某些情况下,模型优化可能会轻微牺牲准确性,但通常这种牺牲是微小的。

一、部署

下载fast-whisper

GitHub - SYSTRAN/faster-whisper: Faster Whisper transcription with CTranslate2

pip install faster-whisper

模型下载:

large-v3模型:https://huggingface.co/Systran/faster-whisper-large-v3/tree/main
large-v2模型:https://huggingface.co/guillaumekln/faster-whisper-large-v2/tree/main
large-v2模型:https://huggingface.co/guillaumekln/faster-whisper-large-v1/tree/main
medium模型:https://huggingface.co/guillaumekln/faster-whisper-medium/tree/main
small模型:https://huggingface.co/guillaumekln/faster-whisper-small/tree/main
base模型:https://huggingface.co/guillaumekln/faster-whisper-base/tree/main
tiny模型:https://huggingface.co/guillaumekln/faster-whisper-tiny/tree/main

示例:

from faster_whisper import WhisperModel
 
model_size = "large-v3"
 
# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")
 
# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
 
segments, info = model.transcribe("audio.mp3", beam_size=5)
 
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
 
for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

替换成自己的音乐,运行:

在这里插入图片描述

二、服务器部署,远程调用

api.py:

from fastapi import FastAPI, File, UploadFile
from fastapi.responses import JSONResponse
from faster_whisper import WhisperModel
import shutil
import os
import uvicorn
 
app = FastAPI()
 
# 配置 Whisper 模型
model_size = "large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
 
@app.post("/transcribe/")
async def transcribe_audio(file: UploadFile = File(...)):
    temp_file = f"temp_{file.filename}"
    
    # 保存上传的文件到临时文件
    with open(temp_file, 'wb') as buffer:
        shutil.copyfileobj(file.file, buffer)
 
    try:
        # 使用 Whisper 模型进行转录
        segments, info = model.transcribe(temp_file, beam_size=5)
        os.remove(temp_file)  # 删除临时文件
        
        # 组装转录结果
        results = [{
            "start": segment.start,
            "end": segment.end,
            "text": segment.text
        } for segment in segments]
 
        return JSONResponse(content={
            "language": info.language,
            "language_probability": info.language_probability,
            "transcription": results
        })
    except Exception as e:
        os.remove(temp_file)  # 确保即使出错也删除临时文件
        return JSONResponse(status_code=500, content={"message": str(e)})
 
if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=1050)

远程调用:

http://192.168.110.12:1050/transcribe/

在这里插入图片描述

三、代码中调用服务器

替换成自己部署服务的ip:

import requests
 
with open('5.wav', 'rb') as f:
    response = requests.post(
        'http://****.***.***.***:1050/transcribe/', 
        files={'file': ('output.wav', f, 'audio/wav')})
data = response.json()  # Get the JSON response
text = data['transcription'][0]['text']
print("识别结果:", text)

在这里插入图片描述

总结:效果杠杠的,速度比whisper快太多了 ,可进行商业应用了。







学术菜鸟小晨

实战whisper第三天:fast whisper 语音识别服务器部署,可远程访问,可商业化部署(全部代码和详细部署步骤)

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Whisper是一款可以实现语音识别转文字的应用软件。它可以通过下载安装在手机或电脑上,实现将语音转化为文字的功能。 使用Whisper进行语音识别转文字非常简便。首先,用户需要下载并安装Whisper应用,可以在各大应用商店或官方网站上获取。安装完成后,用户可以打开应用,并按照界面上的提示进行设置和授权。接下来,用户可以开始使用Whisper进行语音转文字的操作。 在使用Whisper进行语音识别转文字时,用户可以选择两种方式。一种是通过录制语音进行识别,用户只需按下录制按钮,开始说话,Whisper会自动将语音转化为文字。另一种方式是通过实时语音输入进行识别,用户可以直接讲话到麦克风,Whisper会实时将语音转为文字显示在屏幕上。 Whisper语音识别转文字功能非常准确和快速。它采用了先进的语音识别技术,能够准确地识别各种语音,并将其转化为文字。同时,Whisper还支持多国语言的识别,可以满足不同用户的需求。 通过Whisper进行语音识别转文字,用户可以享受到很多便利。无论是需要记录会议内容、学习笔记,还是进行语音交流的转化,Whisper都能够帮助用户快速准确地将语音转化为文字,并保存在手机或电脑上。这样,用户可以方便地进行查看、编辑和分享。 总之,Whisper是一个功能强大、操作简便的语音识别转文字应用软件,通过下载安装,用户可以随时随地将语音转化为文字,提高工作和学习的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值