当前位置: 首页 > news >正文

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

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

目录

moonshine的简介

moonshine的安装和使用方法

1、安装

推荐使用uv管理Python环境

安装Moonshine包

Torch后端

TensorFlow后端

JAX后端

ONNX运行时

2、使用方法

0、测试

1、ONNX独立运行

2、实时字幕

3、翻译

4、 HuggingFace Transformers

moonshine的案例应用


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的安装和使用方法

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的案例应用

持续更新中……

http://www.lryc.cn/news/480151.html

相关文章:

  • albert模型实现微信公众号虚假新闻分类
  • OceanBase 应用实践:如何处理数据空洞,降低存储空间
  • 计算机的错误计算(一百四十八)
  • MySQL记录锁、间隙锁、临键锁(Next-Key Locks)详解
  • SLM401A系列42V商业照明线性恒流芯片 线性照明调光在LED模组及灯带智能球泡灯上应用
  • 京东零售推荐系统可解释能力详解
  • 蓝桥杯 懒洋洋字符串--字符串读入
  • SDL打开YUV视频
  • 微服务架构面试内容整理-Archaius
  • 实现 Nuxt3 预览PDF文件
  • udp为什么会比tcp 有更低的延迟
  • 基于java+SpringBoot+Vue的洗衣店订单管理系统设计与实现
  • HarmonyOS-消息推送
  • 数据分析:宏基因组DESeq2差异分析筛选差异物种
  • 出海企业如何借助云计算平台实现多区域部署?
  • 硬件---1电路设计安全要点以及欧姆定律
  • Linux如何更优质调节系统性能
  • 第三十五章 Vue路由进阶之声明式导航(跳转传参)
  • python爬虫自动库DrissionPage保存网页快照mhtml/pdf/全局截图/打印机另存pdf
  • 基于毫米波雷达和TinyML的车内检测、定位与分类
  • 小E的射击训练
  • React的概念以及发展前景如何?
  • PDF生成:全面解析,C# 如何使用iTextSharp库(或其他类似库)生成PDF文档,包括如何将位图图像嵌入PDF中。
  • 如何选择最适合的消息队列?详解 Kafka、RocketMQ、RabbitMQ 的使用场景
  • gitlab项目如何修改主分支main为master,以及可能遇到的问题
  • RRF(Reciprocal Rank Fusion,倒数排序融合)
  • 移动开发(七):.NET MAUI使用RESTAPI实现查询天气笔记
  • 企业数据无缝对接:从旺店通到金蝶云的入库单管理案例
  • 青少年编程与数学 02-003 Go语言网络编程 19课题、Go语言Restful编程
  • 系统架构设计师论文:论区块链技术及应用