首页 > 其他分享 >Whisper

Whisper

时间:2023-06-21 20:04:40浏览次数:36  
标签:00 prompt -- Whisper 模型 whisper model

Whisper 是 OpenAI 公司开源的通用的语音识别模型。

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

Whisper_github

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

Whisper 执行操作的大致过程:

Whisper_github_02

输入的音频被分割成 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://blog.51cto.com/u_15588078/6531116

相关文章

  • 利用 AWS CodeWhisperer 激发孩子的编程兴趣
    我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的Scratch和Kitten这两款图形化的少儿编程工具。我儿子有一次指着书房里显示器上显示的VisualStudioCode问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”所以我也在想......
  • 一款代码辅助工具——Amazon CodeWhisperer
    一款代码辅助工具——AmazonCodeWhisperer官方链接: https://aws.amazon.com/cn/codewhisperer/?trk=a2076b82-2c5d-475a-8b78-f22f4bb4f9a1&sc_channel=display+ads 特点免费供个人使用无限的代码建议参考跟踪50次安全扫描(每位用户每月)支持IDE工具 VS插件搜索aws插......
  • 免杀工具 -- SysWhispers3WinHttp
    0x01工具介绍SysWhispers3WinHttp基于SysWhispers3增添WinHttp分离加载,可免杀360核晶与Defender等杀软。0x02安装与使用1.使用msfvenom生成Shellcode(或使用CobaltStrike生成Stageless之Shellcode)msfvenom-pwindows/x64/meterpreter_reverse_tcplhost=192.168.1.110lport=44......
  • Whisper
    Whisper是OpenAI公司开源的通用的语音识别模型。(https://github.com/openai/whisper)它是在包含各种音频的大型数据集上训练的,是一个可以执行多语言语音识别、语音翻译和语言识别的多任务模型。它也是一个针对各种语音处理任务进行训练的Transformer序列到序列模型。Whis......
  • 极速进化,光速转录,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 ......