首页 > 其他分享 >Whisper

Whisper

时间:2023-05-08 20:58:52浏览次数:45  
标签:00 prompt -- Whisper 模型 whisper model

Whisper 是 OpenAI 公司开源的通用的语音识别模型。(https://github.com/openai/whisper

它是在包含各种音频的大型数据集上训练的,是一个可以执行多语言语音识别、语音翻译和语言识别的多任务模型。

它也是一个针对各种语音处理任务进行训练的 Transformer 序列到序列模型。

Whisper 执行操作的大致过程:

输入的音频被分割成 30 秒的小段、转换为 log-Mel 频谱图,然后传递到编码器。解码器经过训练以预测相应的文字说明,并与特殊的标记进行混合,这些标记指导单一模型执行诸如语言识别、短语级别的时间戳、多语言语音转录和语音翻译等任务。

使用示例

环境配置

brew install python         # Python 3.8 以上版本
brew install pytorch        # PyTorch 1.10 以上版本

# 依赖 OpenAI 的 tiktoken,用于实现快速分词,可能还需要安装 rust ,
# 以防 tiktoken 不为您的平台提供预构建的轮子。
brew install rust

brew install git            # 下载 github 上的whisper
brew install ffmpeg         # 处理音频

# 从该存储库中拉取并安装最新的提交及其 Python 依赖项:
pip install git+https://github.com/openai/whisper.git  

完成上面配置后,就可以录音转文字了。

录音文件转文字

Whisper提供了两种使用方式:命令行和作为模块在python文件中调用。

命令行

下面是把小朋友读三字经的录音转文字:

$ whisper /Users/ghj1976/Downloads/20230507_185926.m4a --model base --language Chinese 

/Users/ghj1976/opt/anaconda3/lib/python3.9/site-packages/whisper/transcribe.py:114: UserWarning: FP16 is not supported on CPU; using FP32 instead
  warnings.warn("FP16 is not supported on CPU; using FP32 instead")

[00:00.000 --> 00:07.520] 人之初,心本善,心相信,喜相怨,
[00:07.520 --> 00:10.920] 狗不叫,信乃天,
[00:10.920 --> 00:17.760] 教知到,貴一专,子不學,非死而以,
[00:17.760 --> 00:26.800] 又不學,老何為,一不著,不成氣,人不學,不知意,

其中,/Users/ghj1976/Downloads/20230507_185926.m4a 是你的语音文件路径。

目前 Whisper 有 9 种模型(分为纯英文和多语言),其中四种只有英文版本,开发者可以根据需求在速度和准确性之间进行权衡,以下是现有模型的大小,及其内存要求和相对速度,我们这里用的 base 模型。:

Size
大小
Parameters
参数
English-only model
纯英文模型
Multilingual model
多语言模型
Required VRAM
所需显存
Relative speed
相对速度
tiny 39 M tiny.en tiny ~1 GB ~32x
base 74 M base.en base ~1 GB ~16x
small 244 M small.en small ~2 GB ~6x
medium 769 M medium.en medium ~5 GB ~2x
large 1550 M N/A large ~10 GB 1x

作为模块在python文件中调用

这里我们重点介绍下 initial_prompt 参数,它可以提高未知单词的识别准确性、按需生成文字。

initial_prompt 参数 提高未知单词的识别准确性

我们可以通过 initial_prompt 参数提升 Whisper 语音生成文字的质量,使用这个参数,模型会尝试尽量匹配提示的样式。

import whisper
import arrow

# 定义模型、音频地址、录音开始时间
def excute(model_name,file_path,start_time,initial_prompt):
    model = whisper.load_model(model_name)
    result = model.transcribe(file_path,initial_prompt=initial_prompt)
    for segment in result["segments"]:
        now = arrow.get(start_time)
        start = now.shift(seconds=segment["start"]).format("YYYY-MM-DD HH:mm:ss")
        end = now.shift(seconds=segment["end"]).format("YYYY-MM-DD HH:mm:ss")
        print("【"+start+"->" +end+"】:"+segment["text"])

if __name__ == '__main__':
    excute("base","480803359.mp3","2023-05-08 05:41:00", "Hum, you know, I I I would like to to say that... OK")


典型的使用场景如下:

  1. 更正模型在音频中经常错误识别的特定单词,或首字母缩略词。 比如以下提示改进了单词 DALL·E 和 GPT-3,,没有这个提示则会写成“GDP 3”和“DALI”。

The transcript is about OpenAI which makes technology like DALL·E, GPT-3, and ChatGPT with the hope of one day building an AGI system that benefits all of humanity

或者下面方式,可以转换出 DALL·E:

whisper audio.mp3 --initial_prompt "So we were just talking about DALL·E"
  1. 模型可能会跳过标点符号。您可以通过使用包含标点符号的简单提示来避免这种情况,如下面这个提示:

Hello, welcome to my lecture.

  1. 模型还可能省略音频中的常见填充词。如果要在结果中保留填充词,可以使用包含它们的提示:

Umm, let me think like, hmm... Okay, here's what I'm, like, thinking."

  1. 有些语言可以用不同的方式书写,例如简体中文或繁体中文。默认情况下,模型可能并不总是使用您希望的成绩单写作风格。您可以通过使用首选写作风格的提示来改善这一点。
audio_file_path = "path/to/audio/file.wav"
prompt = "请将此转录为简体中文。"
transcription = whisper.transcribe(audio_file_path, prompt=prompt)

参考资料

标签:00,prompt,--,Whisper,模型,whisper,model
From: https://www.cnblogs.com/ghj1976/p/whisper.html

相关文章

  • 极速进化,光速转录,C++版本人工智能实时语音转文字(字幕/语音识别)Whisper.cpp实践
    业界良心OpenAI开源的Whisper模型是开源语音转文字领域的执牛耳者,白璧微瑕之处在于无法通过苹果M芯片优化转录效率,Whisper.cpp则是Whisper模型的C/C++移植版本,它具有无依赖项、内存使用量低等特点,重要的是增加了CoreML支持,完美适配苹果M系列芯片。Whisper.cpp的张量运算......
  • OpenAI的离线音频转文本模型 Whisper 的.NET封装项目
    whisper介绍OpenAI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的Whisper神经网络,且它亦支持其它98种语言的自动语音辨识。Whisper系统所提供的自动语音辨识(AutomaticSpeechRecognition,ASR)模型是被训练来运行语音辨识与翻译任务的,它们能将各种语言的语音变成文......
  • Buzz语音转文字安装使用(含Whisper模型下载)
    https://blog.csdn.net/oXiaoWeiWuDi/article/details/128925672 简介:Transcribeandtranslateaudioofflineonyourpersonalcomputer.PoweredbyOpenAI’sWhisper.转录和翻译音频离线在您的个人计算机。由OpenAI的Whisper提供动力。可以简单理解为QT的前端界面,python......
  • 【C#】Whisper 离线语音识别(微软晓晓语音合成的音频)(带时间戳、srt字幕)...
    https://blog.csdn.net/cxyhjl/article/details/129905927 用微软语音合成功能生成xiaoxiao的语音。用Whisper离线识别合成的语音输出srt字幕。一、语音合成参考这个网址:https://www.bilibili.com/read/cv19064633 合成的音频:晓晓朗读-温柔二、Whisper语音识别下载模......
  • ChatGPT 和 Whisper 模型的区别
    ChatGPT和Whisper模型是两个不同的模型,但都是由OpenAI开发的基于自然语言处理(NLP)的人工智能技术。ChatGPT是一种基于GPT(GenerativePre-trainedTransformer)架构的语言模型,它可以生成自然流畅的文本,用于生成对话、文章等各种文本内容。Whisper是一种针对语音助手等场景开发的模型......
  • Amazon CodeWhisperer
    AmazonCodeWhispererhttps://aws.amazon.com/codewhisperer/resources/#Getting_started/三个步骤 AmazonCodeWhispererOverview|AmazonWebServices-YouTube ......
  • ChatGPT 和 Whisper 模型的区别
    ChatGPT和Whisper模型是两个不同的模型,但都是由OpenAI开发的基于自然语言处理(NLP)的人工智能技术。ChatGPT是一种基于GPT(GenerativePre-trainedTransformer)架构的语言模型,它可以生成自然流畅的文本,用于生成对话、文章等各种文本内容。Whisper是一种针对语音助手等场景开发的模......
  • Whisper
    模型理解Whisper模型参数ModelDimensions的含义如下:n_mels:Mel频率的数量,用于音频处理,通常设置为80。n_audio_ctx:输入音频的上下文大小,即处理音频的窗口大小,通常设置为1......
  • 使用OpenAI的Whisper 模型进行语音识别
    语音识别是人工智能中的一个领域,它允许计算机理解人类语音并将其转换为文本。该技术用于Alexa和各种聊天机器人应用程序等设备。而我们最常见的就是语音转录,语音转录可以......
  • 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python
    前文回溯,之前一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),利用AI技术将文本合成语音,现在反过来,利用开源库Whisper再将语音转回......