🚀 Moonshine
このモデルは、有用なセンサーによってトレーニングされ、リリースされた自動音声認識(ASR)モデルです。英語の音声をテキストに変換するタスクに特化しており、低コストのハードウェアでのリアルタイム音声文字起こしに最適です。
🚀 クイックスタート
MoonshineはHugging Face 🤗 Transformersでサポートされています。モデルを実行するには、まずTransformersライブラリをインストールします。この例では、🤗 DatasetsをインストールしてHugging Face Hubから玩具用のオーディオデータセットをロードし、🤗 Accelerateをインストールしてモデルの読み込み時間を短縮します。
📦 インストール
pip install --upgrade pip
pip install --upgrade transformers datasets[audio]
💻 使用例
基本的な使用法
from transformers import MoonshineForConditionalGeneration, AutoProcessor
from datasets import load_dataset, Audio
import torch
device = "cuda:0" if torch.cuda.is_available() else "cpu"
torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32
model = MoonshineForConditionalGeneration.from_pretrained('UsefulSensors/moonshine-tiny').to(device).to(torch_dtype)
processor = AutoProcessor.from_pretrained('UsefulSensors/moonshine-tiny')
dataset = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
dataset = dataset.cast_column("audio", Audio(processor.feature_extractor.sampling_rate))
sample = dataset[0]["audio"]
inputs = processor(
sample["array"],
return_tensors="pt",
sampling_rate=processor.feature_extractor.sampling_rate
)
inputs = inputs.to(device, torch_dtype)
token_limit_factor = 6.5 / processor.feature_extractor.sampling_rate
seq_lens = inputs.attention_mask.sum(dim=-1)
max_length = int((seq_lens * token_limit_factor).max().item())
generated_ids = model.generate(**inputs, max_length=max_length)
print(processor.decode(generated_ids[0], skip_special_tokens=True))
📚 ドキュメント
モデルの詳細
Moonshineモデルは音声認識タスク用にトレーニングされており、英語の音声を英語のテキストに変換することができます。有用なセンサーは、低コストのハードウェアをベースにしたリアルタイム音声文字起こし製品を開発するというビジネス方向をサポートするためにこれらのモデルを開発しました。サイズと機能が異なる2つのモデルがあり、以下の表にまとめています。
属性 |
详情 |
モデルタイプ |
シーケンス-to-シーケンスのASR(自動音声認識)および音声翻訳モデル |
トレーニングデータ |
インターネットから収集された200,000時間のオーディオとそれに対応する文字起こし、およびHuggingFaceで公開されているデータセット |
サイズ |
パラメータ数 |
英語専用モデル |
多言語モデル |
tiny |
27 M |
✓ |
|
base |
61 M |
✓ |
|
リリース日
2024年10月
論文とサンプル
論文 / ブログ
モデルの使用
評価された使用法
これらのモデルの主な対象ユーザーは、メモリ容量と計算リソースが非常に制限されたプラットフォームで英語の音声認識システムを展開したいAI開発者です。モデルがリリースされた後は、「意図された」使用法のみにアクセスを制限することや、安全な使用法とそうでない使用法の合理的なガイドラインを策定することは不可能であることを認識しています。
モデルは主に英語のASRタスクでトレーニングおよび評価されています。音声活動検出、話者分類、または話者分離などの特定のタスクでファインチューニングされた場合、追加の機能を示す可能性がありますが、これらの領域では十分に評価されていません。ユーザーは、モデルを特定のコンテキストやドメインで展開する前に、モデルの堅牢な評価を行うことを強くお勧めします。
特に、Moonshineモデルを、本人の同意なしに録音された個人の録音を文字起こしするために使用することや、何らかの主観的な分類のためにこれらのモデルを使用することを警告します。精度の欠陥が結果に大きな欠陥を引き起こす可能性がある決定的なコンテキストなどの高リスクドメインでの使用はお勧めしません。モデルは英語の音声を文字起こしすることを目的としており、分類のためのモデルの使用は評価されていないだけでなく、特に人間の属性を推測するためには適切ではありません。
トレーニングデータ
モデルは、インターネットから収集された200,000時間のオーディオとそれに対応する文字起こし、およびHuggingFaceで公開されているデータセットを使用してトレーニングされています。使用されたオープンデータセットは、付随する論文に記載されています。
性能と制限
私たちの評価によると、これらのモデルは、同じサイズの既存のASRシステムよりも標準データセットで高い精度を示します。
ただし、他の機械学習モデルと同様に、予測にはオーディオ入力で実際には話されていないテキスト(すなわち幻覚)が含まれる場合があります。私たちは、これが、モデルが言語の一般的な知識を持っているため、オーディオの次の単語を予測しようとすることと、オーディオ自体を文字起こししようとすることを組み合わせるために起こると仮定しています。
さらに、モデルのシーケンス-to-シーケンスアーキテクチャにより、繰り返しのテキストが生成されやすくなっています。これは、ビームサーチと温度スケジューリングによってある程度軽減できますが、完全には解消できません。この動作と幻覚は、短いオーディオセグメント、またはセグメントの始めや終わりで単語の一部が切り取られているセグメントではさらに悪化する可能性があります。
広範な影響
Moonshineモデルの文字起こし機能は、特にリアルタイム文字起こしのためのアクセシビリティツールの改善に使用される可能性があると予想しています。Moonshineモデルをベースに構築された有益なアプリケーションの実際の価値は、これらのモデルの不均一な性能が実際の経済的影響を持つ可能性があることを示唆しています。
Moonshineをリリースすることには、潜在的な二重使用の懸念もあります。私たちはこの技術が主に有益な目的で使用されることを望んでいますが、ASR技術をより広く利用できるようにすることで、より多くの主体が高性能な監視技術を構築したり、既存の監視活動を拡大したりすることが可能になります。速度と精度により、大量のオーディオ通信の安価な自動文字起こしと翻訳が可能になるためです。さらに、これらのモデルは、そのままで特定の個人を認識する能力を持っている可能性があり、これにより二重使用と不均一な性能の両方に関連する安全上の懸念が生じます。実際には、文字起こしのコストは監視プロジェクトの拡大の制限要因ではないと予想されます。
引用
もしあなたが私たちの研究から恩恵を受けた場合、以下のように引用してください。
@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},
}
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。