当前位置: 首页 > article >正文

AIGC: 关于ChatGPT中基于Whisper模型实现音频转文本

概述

  • 到目前,GPT只能去接收文本的输入,但是在现实的生活当中,会有语音的需求
  • GPT也有相关的能力接入,我们就需要一个能够将语音内容转换成文本的能力
    • 当然其他第三方的软件或者接口也是支持这个功能
    • 在 Open AI 有一个语音转文本的模型叫做 whisper
  • 在 Open AI 它的官方网站当中,在左侧可以看到有一个 Audio 关于音频的API
    • 文档: https://platform.openai.com/docs/api-reference/audio/create-transcription
    • 接口: https://api.openai.com/v1/audio/transcriptions
  • 可以看到它的参数
    • file 参数,必选,file类型,支持 mp3,mp4,mpeg,mpga,m4a,wav,or webm.
    • model 参数,必选,string 类型,目前仅支持 whisper-1
    • prompt 参数,可选,string 类型
    • response_format 参数,可选,string 类型
    • temperature 参数,可选,number 类型 默认 0
    • language 参数,可选,string 类型
  • 与其他的音频转文本的方法或者工具不同的是 Open AI 允许我们去输入 Prompt
    • 这个 Prompt 就是对于我们音频的一个介绍
    • 举个例子,我们的音频是计算机相关的论文,或者法学,医学相关的论文
    • 在这些论文当中,可能会有很多的特有的专业的名词
    • 如果我们按照正常行的音频翻译的话,有可能得到的并不是我们想要的结果
    • 但是 Open AI 不一样,我们在进行 whisper 调用的时候,可以去向它发送 Prompt
    • 这里 Prompt 就是对音频的介绍,我们可以清晰的告诉 GPT,我们的音频是哪个领域,哪个方向
    • 然后研究是的是什么的内容等,这样可辅助GPT对音频的内容进行分析转换成较准确的相关的文本,提升转换的质量
  • response_format 是对于输出进行一个格式化,默认是 Json
  • 这是和音频相关的接口

代码

whisper_example.py

# -*- coding: utf-8
import os
import openai

openai.api_key = "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"
openai.proxy="http://127.0.0.1:7890"

audio_file = open("test.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", audio_file, prompt=r"这是一篇机器学习相关的公开课")

print(transcript['text'])

分析

  • 比如,test.mp3 内容是一段机器学习的英文教学章节
  • 整体的代码看上去非常的简单,只需要两步就可以了
  • 接下来执行一下我们刚刚实现的python代码
  • 可以看到音频已经转换成了文本,但是是英文,有时候我们希望它是中文
  • 这里有几个方案
    • 方案一,通过其他的翻译软件去进行翻译
    • 方案二,可以调用GPT的接口, 通过GBT3.5的模型, 对文章去做一个翻译
      • 把这篇文章作为 Prompt 传递给它,由GPT去做翻译
    • 方案三,利用 whisper 去做一个简单的处理
      • 它的输入参数中,有一个 language的输入参数,这里指音频文件输入的语言
      • 这里并不代表我们设置之后会以对应的形式对我们进行输出
      • 我们想要去输出中文怎么办呢?其实,有一个非常简便的方法
      • 在调用 whisper 模型的时候,可以去传入,Prompt, 告诉它这是一篇机器学习相关的公开课
      • 我们通过中文的描述去构建了一个Prompt告诉whisper
      • 由于我们的 Prompt 是输入的中文的描述, 最终whisper给我们返回的结果也是中文的
  • 以上是通过GPT的 whisper 模型将音频转换成文本的一个简单的示例代码

http://www.kler.cn/a/160284.html

相关文章:

  • 项目风险管理的3大要素
  • IP数据云 识别和分析tor、proxy等各类型代理
  • 【机器学习】如何配置anaconda环境(无脑版)
  • Ubuntu配置阿里云docker apt源
  • Qwen2-VL:发票数据提取、视频聊天和使用 PDF 的多模态 RAG 的实践指南
  • elementui el-table中给表头 el-table-column 加一个鼠标移入提示说明
  • Java利用UDP实现简单群聊
  • 做题笔记:SQL Sever 方式做牛客SQL的题目--VQ35
  • Java开源工具库Guava使用指南详解
  • sqlite3.44.2的编译
  • centos7安装rabbitMQ
  • Jenkins UI 自动化持续化集成测试
  • linux缓冲区(buff/cache)内存占用过高解决办法
  • 从零开发短视频电商 Jmeter压测示例模板详解(无认证场景)
  • 2023年山东省职业院校技能大赛信息安全管理与评估第一阶段样题
  • ffmpeg与opencv-python处理视频
  • 聚观早报 |东方甄选将上架文旅产品;IBM首台模块化量子计算机
  • 准确!!!在 CentOS 8 上配置 PostgreSQL 14 的主从复制
  • 2024年江苏省职业院校技能大赛信息安全管理与评估 第三阶段学生组(样卷)
  • Qt进程和线程
  • B 站基于 StarRocks 构建大数据元仓
  • 后端返回数据前端保留两位小数
  • 8-tornado中模板的使用(通过字符串返回、通过模板Template返回、通过模板render返回)、模板案例
  • Elasticsearch,Kibana集成,x-pack鉴权配置
  • Pandas 打开有密码的Excel
  • Python中函数添加超时时间,Python中signal使用