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 模型将音频转换成文本的一个简单的示例代码

你可能感兴趣的:(AIGC,Python,AIGC)