openai whisper使用

whisper使用

介绍

Whisper是一种通用的语音识别模型。它是在大量不同音频数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。

GitHub:https://github.com/openai/whisper

论文链接:https://arxiv.org/abs/2212.04356

方法

Transformer序列到序列模型在各种语音处理任务上进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。这些任务被联合表示为将由解码器预测的令牌序列,从而允许单个模型代替传统语音处理流水线的许多级。多任务训练格式使用一组特殊的标记,用作任务说明符或分类目标。

安装

环境:

Python==3.8-3.11

PyTorch==1.10.1

使用pip安装

python 复制代码
pip install -U openai-whisper

或者

python 复制代码
pip install git+https://github.com/openai/whisper.git 

更新:

python 复制代码
pip install --upgrade --no-deps --force-reinstall git+https://github.com/openai/whisper.git

它还需要在系统上安装命令行工具ffmpeg,大多数包管理器都提供了该工具(命令行安装):

cmd 复制代码
# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg

# on Arch Linux
sudo pacman -S ffmpeg

# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg

# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg

# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg

FFmpeg安装

FFmpeg是一款音视频编解码工具。Whisper需要使用FFmpeg工具提取声音数据,所以需要安装配置FFmpeg。

  1. 官网下载:https://ffmpeg.org/download.html
  1. 下载解压后配置环境变量:环境变量 --> path --> 新建 --> 解压目录\bin
  1. 验证:
  1. 在python环境中安装依赖包:
python 复制代码
pip install ffmpeg-python

使用whisper

代码

python 复制代码
import whisper

model = whisper.load_model("base")  # 共有四种模型:base、small、medium、large
result = model.transcribe("../XX.mp3", language="Chinese")

print(result["text"])

base结果

坐平二十七号。我打烈归来,掩着花园的林阴路走着,狗跑在我前边。突然,狗放慢脚步,逆足前行,好像袖到了前边有什么野物。我顺着林阴路望去,看见了一只,嘴边还带黄色,头上升着柔毛的小麻雀。风猛烈地吹打的林阴路上的白话术。麻雀,从朝里低落下来,呆呆地伏在地上,孤立无缘地,张开两只羽毛,还未封满的小翅吧。我的狗慢慢向它靠近。忽然,从附近一颗樹上,飞下一只黑胸铺的老麻雀,像一颗石子似的落到狗的眼前。老麻雀全身道术的羽毛,精恐万状发出绝望七慘的教生。接着,想漏出牙石,大张着的狗嘴铺去。老麻雀是猛铺下来救护右翹的。他用身体掩护着自己的幼儿,但他整个小小的身体,因恐怖而战力着。他小小的声音也变得粗暴思呀,他在犀生自己。在他看来,狗该是多么庞大的怪物吧。然而,他还是不能站在自己高高的安全的树制上。一种比他的理智更强烈的力量,是他从哪铺下身来。我的狗站住了,向后退了退。看来他也赶到了这种力量。我赶紧换住金荒失错的狗,然后我怀着重新的心情走开了。是啊,请不要见笑。我重庆那只小小的英勇的鸟儿,我重庆他那种爱的冲动和力量。爱,我想,比死和死的恐惧更强大。只有依靠他,依靠这种爱,生命才能维持下去,发展下去。欢迎光临普通话时期望,三达六点PTHXX.com。

这base模型,识别效果一般,有很多错别字

small结果

作品二十七号。我打猎龟来,沿着花园的林阴路走着,狗跑在我前边。突然,狗放慢脚步,涅足前行,好像绣到了前边有什么野物。我顺着林阴路望去,看见了一只嘴边还带黄色头上生着柔毛的小麻雀。风猛烈地吹打着林阴路上的白画树,麻雀从朝里跌落下来,呆呆地浮在地上,孤立无缘地张开两只羽毛还未风满的小翅膀。我的狗慢慢向它靠近。忽然,从附近一棵树上飞下一只黑胸脖的老麻雀,像一颗石子似的落到狗的眼前。老麻雀全身倒数着羽毛惊恐万状,发出绝望欺惨的叫声。接着,想露出牙齿,大张着的狗嘴铺去。老麻雀是猛铺下来救护幼雀的。它用身体掩护着自己的幼儿。但它整个小小的身体因恐怖而占力着,它小小的声音也变得粗暴思压,它在牺牲自己。在它看来,狗该是多么庞大的怪物啊。然而,它还是不能站在自己高高的安全的树枝上。一种比它的理智更强烈的力量,是它从哪儿扑下身来。我的狗站住了,向后退了退,看来它也感到了这种力量。我赶紧换住惊慌失措的狗,然后我怀着重庆的心情走开了。是啊,请不要见笑。我重庆那只小小的英勇的鸟儿,我重庆它那种爱的冲动和力量。爱,我想,比死和死的恐惧更强大。只有依靠它,依靠这种爱,生命才能维持下去,发展下去。

效果比base好一点,但不多

medium结果

作品二十七號我打獵歸來沿著花園的林蔭路走著狗跑在我前邊突然狗放慢腳步捏足前行好像繡到了前邊有什麼野物我順著林蔭路望去看見了一隻嘴邊還帶黃色頭上生著柔毛的小麻雀風猛烈地吹打著林蔭路上的白樺樹麻雀從巢裡跌落下來呆呆地浮在地上孤立無援地張開兩隻羽毛還未豐滿的小翅膀我的狗慢慢向它靠近忽然從附近一棵樹上飛下一隻黑胸脯的老麻雀像一顆石子似的落到狗的眼前老麻雀全身倒數著羽毛驚恐萬丈發出絕望淒慘的叫聲接著想露出牙齒大張著地狗嘴撲去老麻雀是猛撲下來救護幼雀的它用身體掩護著自己的幼兒但它整個小小的身體因恐怖而站立著它小小的聲音也變得粗暴私養它在犧牲自己在它看來狗該是多麼龐大的怪物啊然而它還是不能站在自己高高的安全的樹枝上一種比它的理智更強烈的力量使它從那兒撲下身來我的狗站住了向後退了退看來它也感到了這種力量我趕緊換住驚慌失措的狗然後我懷著重慶的心情走開了是啊請不要見笑我重慶那只小小的英勇的鳥兒我重慶它那種愛的衝動和力量愛我想比死和死的恐懼更強大只有依靠它依靠這種愛生命才能維持下去發展下去

不知道为什么全是繁体,效果不如small

large结果

作品二十七号我打猎归来,沿着花园的林荫路走着,狗跑在我前边。突然,狗放慢脚步,捏足前行,好像嗅到了前边有什么野物。我顺着林荫路望去,看见了一只,嘴边还带黄色,头上生着绒毛的小麻雀。风猛烈地吹打着林荫路上的白花树,麻雀从巢里跌落下来,呆呆地浮在地上,孤立无援地张开两只羽毛还未丰满的小翅膀。我的狗慢慢向它靠近,忽然从附近一棵树上飞下一只黑胸脯的老麻雀,像一颗石子似的落到狗的眼前。我顺着林荫路望去,看见了一只,嘴边还带黄色,头上生着绒毛的小麻雀。老麻雀全身倒竖着羽毛,惊恐万状,发出绝望凄惨的叫声。接着,想露出牙齿,大张着的狗嘴扑去。老麻雀是猛扑下来救护幼雀的,它用身体掩护着自己的幼儿,但它整个小小的身体因恐怖而站立着。它小小的声音也变得粗暴嘶哑。老麻雀在狗身上,它在牺牲自己。在它看来,狗该是多么庞大的怪物啊。然而,它还是不能站在自己高高的安全的树枝上。一种比它的理智更强烈的力量,是它从那扑下身来。我的狗站住了,向后退了退。看来,它也感到了这种力量。我赶紧唤住惊慌失措的狗,然后我怀着崇敬的心情走开了。老麻雀的狗叫了一声。我说:"是啊,请不要见笑。我崇敬那只小小的英勇的鸟儿。我崇敬它那种爱的冲动和力量。我说:"爱,我想,比死和死的恐惧更强大。只有依靠它,依靠这种爱,生命才能维持下去,发展下去。

使用large模型错别字显著减少,整体效果比base好,但仍然存在一些问题:部分文字重复识别。尚未查明原因

原文:

我打猎归来,沿着花园的林阴路走着。狗跑在我前边。

突然,狗放慢脚步,蹑足潜行,好像嗅到了前边有什么野物。

我顺着林阴路望去,看见了一只嘴边还带黄色、头上生着柔毛的小麻雀。风猛烈地吹打着林阴路上的白桦树,麻雀从巢里跌落下来,呆呆地伏在地上,孤立无援地张开两只羽毛还未丰满的小翅膀。

我的狗慢慢向它靠近。忽然,从附近一棵树上飞下一只黑胸脯的老麻雀,像一颗石子似的落到狗的跟前。老麻雀全身倒竖着羽毛,惊恐万状,发出绝望、凄惨的叫声,接着向露出牙齿、大张着的狗嘴扑去。

老麻雀是猛扑下来救护幼雀的。它用身体掩护着自己的幼儿......但它整个小小的身体因恐怖而战栗着,它小小的声音也变得粗暴嘶哑,它在牺牲自己!

在它看来,狗该是多么庞大的怪物啊!然而,它还是不能站在自己高高的、安全的树枝上......一种比它的理智更强烈的力量,使它从那儿扑下身来。

我的狗站住了,向后退了退......看来,它也感到了这种力量。

我赶紧唤住惊慌失措的狗,然后我怀着崇敬的心情,走开了。

是啊,请不要见笑。我崇敬那只小小的、英勇的鸟儿,我崇敬它那种爱的冲动和力量。

爱,我想,比死和死的恐惧更强大。只有依靠它,依靠这种爱,生命才能维持下去,发展下去。

语言模型下载

下载地址:https://huggingface.co/ggerganov/whisper.cpp/tree/main

GitHub:https://github.com/ggerganov/whisper.cpp/tree/master/models

遇到的错误信息

  1. FileNotFoundError: [WinError 2] 系统找不到指定的文件。

解决办法: 找到External Libraries ---> Python 3.8 ---> Libs ---> subprocess.py---> Ctrl+F 查找"class POpen" ,将shell=False,改为 shell=True。

  1. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 9: invalid start byte

解决办法: 这个问题一般是是ffmpeg造成的,在读取文件的时候某个位置的编码有问题。实际上是由于上面的代码修改后,需要重新启动(在windows系统有这个问题)。 如果重新启动之后,还是出现上述错误,可以按照如下方式重新设置:Pycharm setting ---> Tools ---> Terminal ---> 找到 shell path,将其修改为本地cmd。

相关推荐
&&Citrus3 分钟前
【Petri网导论学习笔记】Petri网导论入门学习(三)
笔记·学习·算法·入门·petri网·petri
Q83431581912 分钟前
海思SD3403(21AP10, 108DC2910 )4K60 的 ISP 图像处理能力,4Tops INT8算力
linux·图像处理·人工智能·嵌入式硬件·视觉检测·视频编解码
机器不会学习CL18 分钟前
分类预测|基于麻雀优化支持向量机的Adaboost集成的数据分类预测Matlab程序SSA-SVM-Adaboost
人工智能·算法·机器学习·支持向量机·matlab·分类
科技资讯快报37 分钟前
容联云容犀Copilot&Agent入选《中国 AI Agent 产品罗盘》
大数据·人工智能·copilot
爱研究的小牛1 小时前
ESRGAN——老旧照片、视频帧的修复和增强,提高图像的分辨率
人工智能·深度学习·自动化·aigc·音视频
Fetters041 小时前
✨机器学习笔记(三)—— 多元线性回归、特征缩放、Scikit-Learn
笔记·机器学习·线性回归
ClonBrowser1 小时前
社交媒体的未来:Facebook如何通过AI技术引领潮流
人工智能·媒体·facebook
chiikawa&q1 小时前
(不用互三)解密AI创作:提升Prompt提示词的提问技巧
人工智能·prompt
E___V___E1 小时前
yolov1到yolov5的发展
人工智能·yolo·目标跟踪
Coder-thinking1 小时前
自定义Spring-start学习笔记
笔记·学习·spring·maven