当前位置:AIGC资讯 > AIGC > 正文

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

更新时间 2024-01-19