美文网首页@IT·互联网技术研发汇集
Python 几分钟就把视频语音识别为文本了,不到10行代码

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

作者: 知信学源 | 来源:发表于2024-02-26 10:03 被阅读0次

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

使用起来就两步。

安装依赖包

pip install faster-whisper

写代码,

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 端。

选则一个视频;

然后点击「提取文本」,这时会调用 Python 接口,需要等待一段时间;

加载解析出的文本以及出现的开始、截止时间;

选了一个开始时间和一个结束事件;

点击「导出」按钮,视频片段就导出了;

,时长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)

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

相关文章

  • Python文本转语音

    利用Python 的 库文本转语音 结果为: 原文本为: 代码如下:

  • 简书一个功能优化----增加语音留言

    功能描述 在留言板支持语音留言,发布留言之后自动语音识别为文字,即语音和文字共存。楼主可以播放语音,也可以查看文本...

  • python将文本转换成语音的代码

    将写代码过程中经常用的一些代码片段备份一下,如下代码段是关于python将文本转换成语音的代码,应该是对小伙伴们有...

  • Python 文本转语音

    文本转语音,一般会用在无障碍开发。下面介绍如何使用Python实现将文本文件转换成语音输出。 [toc] 准备 我...

  • 爬虫集合

    各大网站文本,图片,语音,视频爬虫~ 项目地址 代码 爬虫列表 智联招聘 京东 推酷 头条 微博 87fuli 电...

  • Python 教程 准备工作

    一、Python 简介 Python 提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容...

  • python实现文本转语音

    准备工作:支持Python版本:2.7.+ ,3.4+安装使用Python SDK有如下方式如果已经安装了pip,...

  • scrollView图片轮播demo

    不会设置代码的文本格式,就把代码截图过来了 demo链接:百度云升级

  • linux服务器搭建nodejs项目

    python 一.简介Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量...

  • Python基础语法

    Python代码是以.py为扩展名的文本文件,要运行代码,需要安装Python解释器:◆CPython:官方默认编...

网友评论

    本文标题:Python 几分钟就把视频语音识别为文本了,不到10行代码

    本文链接:https://www.haomeiwen.com/subject/tfjzadtx.html