p2p网站建设源码,seo排名优化哪里好,wordpress主页制作,公司请人做的网站 域名属于谁
目录 一、引言
二、自动语音识别#xff08;automatic-speech-recognition#xff09;
2.1 概述
2.2 技术原理
2.2.1 whisper模型
2.2.2 Wav2vec 2.0模型
2.3 pipeline参数
2.3.1 pipeline对象实例化参数
2.3.2 pipeline对象使用参数…
目录 一、引言
二、自动语音识别automatic-speech-recognition
2.1 概述
2.2 技术原理
2.2.1 whisper模型
2.2.2 Wav2vec 2.0模型
2.3 pipeline参数
2.3.1 pipeline对象实例化参数
2.3.2 pipeline对象使用参数
2.3.3 pipeline对象返回参数
2.4 pipeline实战
2.4.1 facebook/wav2vec2-base-960h默认模型 2.4.2 openai/whisper-medium
2.5 模型排名
三、总结 一、引言 pipeline管道是huggingface transformers库中一种极简方式使用大模型推理的抽象将所有大模型分为音频Audio、计算机视觉Computer vision、自然语言处理NLP、多模态Multimodal等4大类28小类任务tasks共计覆盖32万个模型。 今天介绍Audio音频的第二篇自动语音识别automatic-speech-recognition在huggingface库内共有1.8万个音频分类模型。
二、自动语音识别automatic-speech-recognition
2.1 概述
自动语音识别 (ASR)也称为语音转文本 (STT)是将给定音频转录为文本的任务。主要应用场景有人机对话、语音转文本、歌词识别、字幕生成等。 2.2 技术原理
自动语音识别主要原理是音频切分成25ms-60ms的音谱后采用卷机网络抽取音频特征再通过transformer等网络结构与文本进行对齐训练。比较知名的自动语音识别当属openai的whisper和meta的Wav2vec 2.0。
2.2.1 whisper模型
语音部分基于680000小时音频数据进行训练包含英文、其他语言转英文、非英文等多种语言。将音频数据转换成梅尔频谱图再经过两个卷积层后送入 Transformer 模型。
文本部分文本token包含3类special tokens标记tokens、text tokens文本tokens、timestamp tokens时间戳基于标记tokens控制文本的开始和结束基于timestamp tokens让语音时间与文本对其。 不同尺寸模型参数量、多语言支持情况、需要现存大小以及推理速度如下 2.2.2 Wav2vec 2.0模型
Wav2vec 2.0是 Meta在2020年发表的无监督语音预训练模型。它的核心思想是通过向量量化Vector QuantizationVQ构造自建监督训练目标对输入做大量掩码后利用对比学习损失函数进行训练。模型结构如图基于卷积网络Convoluational Neural NetworkCNN的特征提取器将原始音频编码为帧特征序列通过 VQ 模块把每帧特征转变为离散特征 Q并作为自监督目标。同时帧特征序列做掩码操作后进入 Transformer [5] 模型得到上下文表示 C。最后通过对比学习损失函数拉近掩码位置的上下文表示与对应的离散特征 q 的距离即正样本对。 2.3 pipeline参数
2.3.1 pipeline对象实例化参数 模型PreTrainedModel或TFPreTrainedModel— 管道将使用其进行预测的模型。 对于 PyTorch这需要从PreTrainedModel继承对于 TensorFlow这需要从TFPreTrainedModel继承。feature_extractorSequenceFeatureExtractor——管道将使用其来为模型编码波形的特征提取器。tokenizer ( PreTrainedTokenizer ) — 管道将使用 tokenizer 来为模型编码数据。此对象继承自 PreTrainedTokenizer。解码器pyctcdecode.BeamSearchDecoderCTC可选— PyCTCDecode 的 BeamSearchDecoderCTC 可以传递用于语言模型增强解码。有关更多信息请参阅Wav2Vec2ProcessorWithLM 。chunk_length_s ( float可选默认为 0) — 每个块的输入长度。如果chunk_length_s 0禁用分块默认。stride_length_s ( float可选默认为chunk_length_s / 6) — 每个块左侧和右侧的步幅长度。仅与 一起使用chunk_length_s 0。这使模型能够看到更多上下文并比没有此上下文时更好地推断字母但管道会在最后丢弃步幅位以使最终的重构尽可能完美。框架str可选— 要使用的框架pt适用于 PyTorch 或tfTensorFlow。必须安装指定的框架。如果未指定框架则默认为当前安装的框架。如果未指定框架且两个框架都已安装则默认为 的框架model如果未提供模型则默认为 PyTorch 的框架。设备Union[ int, torch.device]可选— CPU/GPU 支持的设备序号。设置为None将利用 CPU设置为正数将在关联的 CUDA 设备 ID 上运行模型。torch_dtype (Union[ int, torch.dtype],可选) — 计算的数据类型 (dtype)。将其设置为None将使用 float32 精度。设置为 torch.float16或torch.bfloat16将在相应的 dtype 中使用半精度。 2.3.2 pipeline对象使用参数 输入np.ndarray或bytes或str或dict — 输入可以是 str即本地音频文件的文件名或下载音频文件的公共 URL 地址。文件将以正确的采样率读取以使用 ffmpeg获取波形。这需要系统上安装ffmpeg 。bytes它应该是音频文件的内容并以相同的方式由ffmpeg进行解释。np.ndarray形状为n类型为np.float32或np.float64正确采样率的原始音频不再进行进一步检查dict形式可用于传递任意采样的原始音频sampling_rate并让此管道进行重新采样。字典必须采用{sampling_rate: int, raw: np.array}可选格式stride: (left: int, right: int)可以要求管道在解码时忽略第一个left样本和最后一个right样本但在推理时使用为模型提供更多上下文。仅用于strideCTC 模型。return_timestamps可选str或bool— 仅适用于纯 CTC 模型Wav2Vec2、HuBERT 等和 Whisper 模型。不适用于其他序列到序列模型。 对于 CTC 模型时间戳可以采用以下两种格式之一 char管道将返回文本中每个字符的时间戳。例如如果您得到[{text: h, timestamp: (0.5, 0.6)}, {text: i, timestamp: (0.7, 0.9)}]则意味着模型预测字母“h”是在 秒后0.5和 0.6秒之前说出的。word管道将返回文本中每个单词的时间戳。例如如果您得到[{text: hi , timestamp: (0.5, 0.9)}, {text: there, timestamp: (1.0, 1.5)}]则意味着模型预测单词“hi”是在 秒后0.5和0.9秒之前说的。对于 Whisper 模型时间戳可以采用以下两种格式之一 word与上文相同适用于字级 CTC 时间戳。字级时间戳通过动态时间规整 (DTW)算法进行预测该算法通过检查交叉注意权重来近似字级时间戳。True管道将返回文本中单词片段的时间戳。例如如果您得到[{text: Hi there!, timestamp: (0.5, 1.5)}]则意味着模型预测“Hi there!” 片段是在 秒后0.5和1.5秒之前说的。请注意文本片段指的是一个或多个单词的序列而不是像单词级时间戳那样的单个单词。generate_kwargsdict可选generate_config—用于生成调用的临时参数化字典。有关 generate 的完整概述请查看以下指南。max_new_tokensint可选— 要生成的最大令牌数忽略提示中的令牌数。 2.3.3 pipeline对象返回参数 文本str识别的文本。chunks可选List[Dict]当使用时return_timestampschunks将成为一个列表包含模型识别的所有各种文本块例如* [{text: hi , timestamp: (0.5, 0.9)}, {text: there, timestamp: (1.0, 1.5)}]。通过执行可以粗略地恢复原始全文 .join(chunk[text] for chunk in output[chunks])。 2.4 pipeline实战
2.4.1 facebook/wav2vec2-base-960h默认模型
pipeline对于automatic-speech-recognition的默认模型是facebook/wav2vec2-base-960h使用pipeline时如果仅设置taskautomatic-speech-recognition不设置模型则下载并使用默认模型。
import os
os.environ[HF_ENDPOINT] https://hf-mirror.com
os.environ[CUDA_VISIBLE_DEVICES] 2from transformers import pipelinespeech_file ./output_video_enhanced.mp3
pipe pipeline(taskautomatic-speech-recognition)
result pipe(speech_file)
print(result) 可以将.mp3内的音频转为文本
{text: WELL TO DAYS STORY MEETING IS OFFICIALLY STARTED SOMEONE SAID THAT YOU HAVE BEEN TELLING STORIES FOR TWO OR THREE YEARS FOR SUCH A LONG TIME AND YOU STILL HAVE A STORY MEETING TO TELL} 2.4.2 openai/whisper-medium
我们指定模型openai/whisper-medium具体代码为
import os
os.environ[HF_ENDPOINT] https://hf-mirror.com
os.environ[CUDA_VISIBLE_DEVICES] 2from transformers import pipelinespeech_file ./output_video_enhanced.mp3
pipe pipeline(taskautomatic-speech-recognition, modelopenai/whisper-medium)
result pipe(speech_file)
print(result)
输入为一段mp3格式的语音输出为
{text: Well, todays story meeting is officially started. Someone said that you have been telling stories for two or three years for such a long time, and you still have a story meeting to tell.}
2.5 模型排名
在huggingface上我们筛选自动语音识别模型并按下载量从高到低排序 三、总结
本文对transformers之pipeline的自动语音识别automatic-speech-recognition从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍读者可以基于pipeline使用文中的代码极简的进行自动语音识别推理应用于语音识别、字幕提取等业务场景。 期待您的3连关注如何还有时间欢迎阅读我的其他文章
《Transformers-Pipeline概述》
【人工智能】Transformers之Pipeline概述30w大模型极简应用
《Transformers-Pipeline 第一章音频Audio篇》
【人工智能】Transformers之Pipeline一音频分类audio-classification
【人工智能】Transformers之Pipeline二自动语音识别automatic-speech-recognition
【人工智能】Transformers之Pipeline三文本转音频text-to-audio
【人工智能】Transformers之Pipeline四零样本音频分类zero-shot-audio-classification
《Transformers-Pipeline 第二章计算机视觉CV篇》
【人工智能】Transformers之Pipeline五深度估计depth-estimation
【人工智能】Transformers之Pipeline六图像分类image-classification
【人工智能】Transformers之Pipeline七图像分割image-segmentation
【人工智能】Transformers之Pipeline八图生图image-to-image
【人工智能】Transformers之Pipeline九物体检测object-detection
【人工智能】Transformers之Pipeline十视频分类video-classification
【人工智能】Transformers之Pipeline十一零样本图片分类zero-shot-image-classification
【人工智能】Transformers之Pipeline十二零样本物体检测zero-shot-object-detection
《Transformers-Pipeline 第三章自然语言处理NLP篇》
【人工智能】Transformers之Pipeline十三填充蒙版fill-mask
【人工智能】Transformers之Pipeline十四问答question-answering
【人工智能】Transformers之Pipeline十五总结summarization
【人工智能】Transformers之Pipeline十六表格问答table-question-answering
【人工智能】Transformers之Pipeline十七文本分类text-classification
【人工智能】Transformers之Pipeline十八文本生成text-generation
【人工智能】Transformers之Pipeline十九文生文text2text-generation
【人工智能】Transformers之Pipeline二十令牌分类token-classification
【人工智能】Transformers之Pipeline二十一翻译translation
【人工智能】Transformers之Pipeline二十二零样本文本分类zero-shot-classification
《Transformers-Pipeline 第四章多模态Multimodal篇》
【人工智能】Transformers之Pipeline二十三文档问答document-question-answering
【人工智能】Transformers之Pipeline二十四特征抽取feature-extraction
【人工智能】Transformers之Pipeline二十五图片特征抽取image-feature-extraction
【人工智能】Transformers之Pipeline二十六图片转文本image-to-text
【人工智能】Transformers之Pipeline二十七掩码生成mask-generation
【人工智能】Transformers之Pipeline二十八视觉问答visual-question-answering