真快!几分钟就把视频语音识别为文本了,不到10行代码

将音视频文件中的音频转为文字内容,这个需求放到两年前还不大好实现,但是放到今天,几分钟就解决了。

听说有的公司为了抓取训练数据,已经把抖音、快手这些短视频平台上的视频扒了个遍,然后将其中的音频提取成文本,用作大数据模型的训练语料。

如果你有将视频或音频文件转文字的需要,不妨试一试今天提供的这个开源方案。比如搜索影视台词出现的时间点。

话不多说,进入正题。

Whisper

这个方案就是 OpenAI 开源的 Whisper,当然是用 Python 写的了,只需要简单安装几个包,然后几行代码一写,稍等片刻(根据你的机器性能和音视频长度不一),最终的文本内容就出来了,就是这么简单。

GitHub 仓库地址:https://github.com/openai/whisper

Fast-Whisper

虽然已经很简单了,但是对于程序员来说还是不够简洁,毕竟程序员都很“懒”,Whisper 虽说安装和调用已经很简单了,但还是需要独立安装 PyTorch 、ffmpeg 甚至 Rust。

于是,就有了更快、更简洁的 Fast-Whisper。Fast-Whisper 并不是简单封装了一下 Whisper,而是是使用 CTranslate2 重新实现 OpenAI 的 Whisper 模型,CTranslate2 是 Transformer 模型的快速推理引擎。

总结一下,也就是比 Whisper 更快,官方的说法是比 Whisper 快了 4-8 倍。不仅能支持 GPU ,还能支持 CPU,连我这台破 Mac 也能用。

GitHub 仓库地址:https://github.com/SYSTRAN/faster-whisper

使用起来就两步。

  1. 安装依赖包
pip install faster-whisper
  1. 写代码,
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))

没错,就是这么简单。

能做什么呢

正好有个朋友想做短视频,发一些鸡汤文学的视频,鸡汤就来自于一些名家访谈的视频。但是,他又不想把完整的视频看一遍,就想用最快的方式把文本内容弄下来,然后读文字,因为读文字要比看一篇视频快的多,而且还可以搜索。

我就说,连完整的看一篇视频的虔诚之心都没有,能经营好账号吗。

于是我给他做了一个,就是用的 Fast-Whisper。

客户端

客户端用 Swift ,只支持 Mac 端。

  1. 选则一个视频;
  2. 然后点击「提取文本」,这时会调用 Python 接口,需要等待一段时间;
  3. 加载解析出的文本以及出现的开始、截止时间;
  4. 选了一个开始时间和一个结束事件;
  5. 点击「导出」按钮,视频片段就导出了;

,时长00:10

服务端

服务端当然就是 Python ,然后用 Flask 包装一下,对外放开接口。

from flask import Flask, request, jsonify
from faster_whisper import WhisperModel

app = Flask(__name__)

model_size = "large-v2"
model = WhisperModel(model_size, device="cpu", compute_type="int8")


@app.route('/transcribe', methods=['POST'])
def transcribe():
    # Get the file path from the request
    file_path = request.json.get('filePath')

    # Transcribe the file
    segments, info = model.transcribe(file_path, beam_size=5, initial_prompt="简体")
    segments_copy = []
    with open('segments.txt', 'w') as file:
        for segment in segments:
            line = "%.2fs|%.2fs|[%.2fs -> %.2fs]|%s" % (
                segment.start, segment.end, segment.start, segment.end, segment.text)
            segments_copy.append(line)
            file.write(line + '\n')

    # Prepare the response
    response_data = {
        "language": info.language,
        "language_probability": info.language_probability,
        "segments": []
    }

    for segment in segments_copy:
        response_data["segments"].append(segment)

    return jsonify(response_data)


if __name__ == '__main__':
    app.run(debug=False)

以上就是个抛砖引玉的小工具,留着自己用用也足够了。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/225284.html<

(0)
运维的头像运维
上一篇2025-04-16 20:05
下一篇 2025-04-16 20:06

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注