ONNX 模型库
返回模型

说明文档

模型卡片:Moonshine

[博客] [论文] [安装] [播客]

这是用于运行由 Useful Sensors 训练和发布的自动语音识别 (ASR) 模型(Moonshine 模型)的模型卡片。

遵循模型报告的模型卡片 (Mitchell et al.),我们提供关于该自动语音识别模型的一些信息。有关这些模型如何训练和评估的更多信息可以在论文中找到。请注意,很多文本是从 OpenAI 开发的 Whisper 模型的模型卡片中原样复制的,因为这两个模型服务于相同的目的,并具有相同的风险。

模型详情

Moonshine 模型是为语音识别任务训练的,能够将英语语音音频转录为英语文本。Useful Sensors 开发这些模型是为了支持其基于低成本硬件开发实时语音转录产品的业务方向。有 2 个不同大小和能力的模型,总结在下表中。

大小 参数量 仅英语模型 多语言模型
tiny 27 M
base 61 M

发布日期

2024年10月

模型类型

序列到序列 ASR(自动语音识别)和语音翻译模型

论文和样本

论文 / 博客

模型用途

评估用途

这些模型的主要目标用户是希望在内存容量和计算资源严重受限的平台上部署英语语音识别系统的 AI 开发者。我们认识到,一旦模型发布,就不可能将访问权限仅限制为"预期"用途,也不可能围绕什么是或什么不是安全用途制定合理的指导方针。

这些模型主要针对英语 ASR 任务进行训练和评估。它们可能表现出额外的能力,特别是在某些任务上进行微调时,如语音活动检测、说话人分类或说话人分离,但在这些领域尚未经过稳健的评估。我们强烈建议用户在特定环境和领域部署模型之前,对模型进行稳健的评估。

特别要注意,我们警告不要使用 Moonshine 模型来转录未经当事人同意而录制的个人录音,或声称将这些模型用于任何类型的主观分类。我们建议不要在高风险领域使用,如决策场景,因为准确性的缺陷可能导致结果的明显缺陷。这些模型旨在转录英语语音,将模型用于分类不仅没有被评估,而且也不合适,特别是用于推断人类属性。

训练数据

这些模型是在 200,000 小时的音频和从互联网收集的相应转录文本,以及 HuggingFace 上公开可用的数据集上训练的。使用的开放数据集列在 accompanying 论文中。

性能和局限性

我们的评估表明,在标准数据集上,这些模型比现有类似大小的 ASR 系统表现出更高的准确性。

然而,像任何机器学习模型一样,预测可能包含音频输入中实际上没有说出的文本(即幻觉)。我们假设这种情况的发生是因为,鉴于其对语言的一般知识,模型在尝试转录音频本身的同时,也在尝试预测音频中的下一个词。

此外,模型的序列到序列架构使其容易生成重复文本,这可以通过束搜索和温度调度在一定程度上缓解,但不能完全解决。这种行为和幻觉对于短音频片段或在片段开头或结尾部分单词被切断的片段可能更严重。

更广泛的影响

我们预计 Moonshine 模型的转录能力可用于改进无障碍工具,特别是实时转录。基于 Moonshine 模型构建的有益应用的真实价值表明,这些模型的不同性能可能具有真正的经济影响。

发布 Moonshine 也带来了潜在的双重用途担忧。虽然我们希望这项技术主要用于有益的目的,但让 ASR 技术更容易获得可能会使更多的参与者能够构建强大的监控技术或扩大现有的监控工作,因为速度和准确性允许对大量音频通信进行负担得起的自动转录和翻译。此外,这些模型可能具有开箱即用识别特定个体的能力,这反过来带来了与双重用途和性能差异相关的安全问题。在实践中,我们预计转录成本并不是扩大监控项目的限制因素。

设置

  • 安装 uv 用于 Python 环境管理

  • 创建并激活虚拟环境

      uv venv env_moonshine
      source env_moonshine/bin/activate
    
  • 从此 github 仓库安装 useful-moonshine

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

    moonshine 推理代码是用 Keras 编写的,可以在 Keras 支持的后端上运行。上述命令将使用 PyTorch 后端安装。要运行提供的推理代码,您必须通过设置环境变量来指示 Keras 使用 PyTorch 后端。

    export KERAS_BACKEND=torch
    

    要使用 TensorFlow 后端运行,请运行以下命令安装 Moonshine。

    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
    # 使用 useful-moonshine[jax-cuda] 在 GPU 上运行 jax
    
  • 测试转录音频文件

    python
    >>> 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/tinymoonshine/base 是当前可用的模型。

引用

如果您从我们的工作中受益,请引用我们:

@misc{jeffries2024moonshinespeechrecognitionlive,
      title={Moonshine: Speech Recognition for Live Transcription and Voice Commands}, 
      author={Nat Jeffries and Evan King and Manjunath Kudlur and Guy Nicholson and James Wang and Pete Warden},
      year={2024},
      eprint={2410.15608},
      archivePrefix={arXiv},
      primaryClass={cs.SD},
      url={https://arxiv.org/abs/2410.15608}, 
}

csukuangfj/moonshine-fork

作者 csukuangfj

automatic-speech-recognition keras
↓ 0 ♥ 1

创建时间: 2024-10-26 00:55:49+00:00

更新时间: 2024-10-26 00:58:28+00:00

在 Hugging Face 上查看

文件 (16)

.gitattributes
README.md
base/decoder.weights.h5
base/encoder.weights.h5
base/preprocessor.weights.h5
onnx/base/cached_decode.onnx ONNX
onnx/base/encode.onnx ONNX
onnx/base/preprocess.onnx ONNX
onnx/base/uncached_decode.onnx ONNX
onnx/tiny/cached_decode.onnx ONNX
onnx/tiny/encode.onnx ONNX
onnx/tiny/preprocess.onnx ONNX
onnx/tiny/uncached_decode.onnx ONNX
tiny/decoder.weights.h5
tiny/encoder.weights.h5
tiny/preprocessor.weights.h5