NLP之ASR之moonshine:moonshine的简介、安装和使用方法、案例应用之详细攻略

server/2024/11/14 4:40:30/

NLPASRmoonshinemoonshine的简介、安装和使用方法、案例应用之详细攻略

目录

moonshine%E7%9A%84%E7%AE%80%E4%BB%8B-toc" style="margin-left:0px;">moonshine的简介

moonshine%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-toc" style="margin-left:0px;">moonshine的安装和使用方法

1、安装

推荐使用uv管理Python环境

安装Moonshine包

Torch后端

TensorFlow后端

JAX后端

ONNX运行时

2、使用方法

0、测试

1、ONNX独立运行

2、实时字幕

3、翻译

4、 HuggingFace Transformers

moonshine%E7%9A%84%E6%A1%88%E4%BE%8B%E5%BA%94%E7%94%A8-toc" style="margin-left:0px;">moonshine的案例应用


moonshine%E7%9A%84%E7%AE%80%E4%BB%8B" style="text-align:justify;">moonshine的简介

2024年10月,Moonshine是一个针对资源受限设备优化的语音转文本 (ASR) 模型家族,旨在提供快速且准确的语音识别能力。它非常适合实时、设备端的应用,例如实时转录语音命令识别。Moonshine在HuggingFace的OpenASR排行榜上,其单词错误率 (WER) 表现优于同等规模的OpenAI Whisper模型(tiny.en 和 base.en)。

Moonshine 的计算需求与输入音频长度成正比,这意味着较短的音频处理速度更快,这与以30秒为块处理音频的Whisper模型不同。例如,Moonshine 处理10秒音频的速度是Whisper的5倍,同时保持相同或更好的WER。Moonshine Base模型大小约为400MB,Tiny模型约为190MB。目前公开发布的模型仅支持英语。

GitHub地址:https://github.com/usefulsensors/moonshine

moonshine%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95" style="text-align:justify;">moonshine的安装和使用方法

1、安装

推荐使用uv管理Python环境

若不使用uv,请跳过第一步。
创建虚拟环境: 首先,安装uv:

pip install uv

然后创建并激活虚拟环境:

uv venv env_moonshine
source env_moonshine/bin/activate

安装Moonshine包

Moonshine推理代码使用Keras编写,支持Torch、TensorFlow和JAX后端。选择后端决定安装哪个版本的Moonshine包。建议从Torch后端开始:

Torch后端

uv pip install useful-moonshine@git+https://github.com/usefulsensors/moonshine.git export KERAS_BACKEND=torch

TensorFlow后端

uv pip install useful-moonshine[tensorflow]@git+https://github.com/usefulsensors/moonshine.git export KERAS_BACKEND=tensorflow

JAX后端

uv pip install useful-moonshine[jax]@git+https://github.com/usefulsensors/moonshine.git export KERAS_BACKEND=jax (使用GPU: useful-moonshine[jax-cuda])

ONNX运行时

uv pip install useful-moonshine[onnx]@git+https://github.com/usefulsensors/moonshine.git

2、使用方法

0、测试

可以使用以下函数转录提供的示例音频文件来测试 Moonshine .transcribe:
使用.transcribe函数测试Moonshine:

>>> import moonshine
>>> moonshine.transcribe(moonshine.ASSETS_DIR / 'beckett.wav', 'moonshine/tiny')['Ever tried ever failed, no matter try again, fail again, fail better.']第一个参数是音频文件路径,第二个参数是Moonshine模型名称 (moonshine/tiny 或 moonshine/base)。使用moonshine.transcribe_with_onnx函数使用ONNX运行时进行推理,参数与moonshine.transcribe相同。

Moonshine模型可与多种运行时和应用程序一起使用。

1、ONNX独立运行

最新的ONNX Moonshine模型可在HuggingFace (huggingface.co/UsefulSensors/moonshine/tree/main/onnx) 获取,示例Python脚本和更多信息可在仓库的demo文件夹中找到。

2、实时字幕

可以使用live captions demo在许多平台上使用麦克风的实时输入来测试Moonshine模型。

3、翻译

CTranslate2版本的Moonshine文件可在HuggingFace (huggingface.co/UsefulSensors/moonshine/tree/main/ctranslate2) 获取,但需要合并pull request才能与框架的主线版本一起使用。可以使用项目的特定分支和示例脚本进行尝试。

4、 HuggingFace Transformers

两个模型都可在HuggingFace Hub上使用,并可与transformers库一起使用 (代码示例见GitHub项目)。

from transformers import AutoModelForSpeechSeq2Seq, AutoConfig, PreTrainedTokenizerFastimport torchaudio
import sysaudio, sr = torchaudio.load(sys.argv[1])
if sr != 16000:audio = torchaudio.functional.resample(audio, sr, 16000)# 'usefulsensors/moonshine-base' for the base model
model = AutoModelForSpeechSeq2Seq.from_pretrained('usefulsensors/moonshine-tiny', trust_remote_code=True)
tokenizer = PreTrainedTokenizerFast.from_pretrained('usefulsensors/moonshine-tiny')tokens = model(audio)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))

moonshine%E7%9A%84%E6%A1%88%E4%BE%8B%E5%BA%94%E7%94%A8" style="text-align:justify;">moonshine的案例应用

持续更新中……


http://www.ppmy.cn/server/141008.html

相关文章

Android下的系统调用 (syscall),内联汇编syscall

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 什么是系统调用 (syscall) 系统调用是操作系统提供给应用程序的一组接口,允许用户空间程序与内核进行交互。 在 Android(基于 Linux …

华硕推出Intel Xeon 6/ Gaudi 3服务器 加速企业AI布局!

(10月23日,台北讯) 华硕服务器新品接力强势助攻,今再推出多款搭载Intel Xeon 6处理器的服务器,包括:多节点的ASUS RS920Q-E12,其兼容适用HPC运算的Intel Xeon 6900系列处理器;以及ASUS RS720Q-E12、RS720-E…

一篇文章解释AI中的“算力”与“数据”两个概念!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是算力?为什么算力重要?算力的发展历程什么是数据?数据的作用数据的应用场景算力与数据的关系总结前言 为什么我要特别讲这两个词呢?因为人工智能的核心其实就是三件事儿:算力、…

「QT」几何数据类 之 QPolygon 多边形类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

计算机的错误计算(一百五十)

摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或 ()附近数时,输出会有错误数字。 例1. 已知 计算 直接贴图吧: 另外,16位的正确值分别为 -0.7882256119904400e0、0.1702266977524110e0、-0.…

Redis的缓存问题与应对策略

Redis 作为一种高效的缓存系统,在高并发环境下应用广泛,但也面临一些缓存问题,以下是常见问题及其应对策略。 1. 缓存穿透 问题描述 缓存穿透是指请求的数据在缓存和数据库中都不存在,但大量请求直接到达数据库,从而给…

JavaSecLab靶场搭建

下载地址 whgojp/JavaSecLab: ​ JavaSecLab是一款综合型Java漏洞平台,提供相关漏洞缺陷代码、修复代码、漏洞场景、审计SINK点、安全编码规范,覆盖多种漏洞场景,友好用户交互UI…… (github.com) 安装流程 git clone https://github.com/…

12.UE5朝向鼠标攻击,状态机入门

2-14 朝向鼠标、怪物死亡、状态机、纯函数_哔哩哔哩_bilibili 1.朝向鼠标攻击 之前我们设置了角色移动时,将自动朝向移动的方向 我们需要再攻击时,先将这个关闭掉 随后获取光标的朝向,并只将yaw设置为角色的朝向,然后播放动画&a…