CoolFace
Modelpublic

FunAudioLLM/SenseVoiceSmall

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
483likes24kdownloads
README_ja.md279 linesDownload Raw Back to root
1# SenseVoice2 3「[简体中文](./README_zh.md)」|「[English](./README.md)」|「日本語」4 5github [repo](https://github.com/FunAudioLLM/SenseVoice) : https://github.com/FunAudioLLM/SenseVoice6 7SenseVoiceは、音声認識(ASR)、言語識別(LID)、音声感情認識(SER)、および音響イベント分類(AEC)または音響イベント検出(AED)を含む音声理解能力を備えた音声基盤モデルです。本プロジェクトでは、SenseVoiceモデルの紹介と、複数のタスクテストセットでのベンチマーク、およびモデルの体験に必要な環境のインストールと推論方法を提供します。8 9<div align="center">  10<img src="image/sensevoice2.png">11 12[//]: # (<div align="center"><img src="image/sensevoice2.png" width="700"/> </div>)13 14<h4>15<a href="#What's New"> ドキュメントホーム </a>16|<a href="#核心功能"> コア機能 </a>17</h4>18<h4>19<a href="#On Going"> 最新情報 </a>20|<a href="#Benchmark"> ベンチマーク </a>21|<a href="#环境安装"> 環境インストール </a>22|<a href="#用法教程"> 使用方法 </a>23|<a href="#联系我们"> お問い合わせ </a>24</h4>25 26モデルリポジトリ:[modelscope](https://www.modelscope.cn/models/iic/SenseVoiceSmall),[huggingface](https://huggingface.co/FunAudioLLM/SenseVoiceSmall)27 28オンライン体験:29[modelscope demo](https://www.modelscope.cn/studios/iic/SenseVoice), [huggingface space](https://huggingface.co/spaces/FunAudioLLM/SenseVoice)30 31</div>32 33<a name="核心功能"></a>34# コア機能 🎯35**SenseVoice**は、高精度な多言語音声認識、感情認識、および音声イベント検出に焦点を当てています。36- **多言語認識:** 40万時間以上のデータを使用してトレーニングされ、50以上の言語をサポートし、認識性能はWhisperモデルを上回ります。37- **リッチテキスト認識:** 38  - 優れた感情認識能力を持ち、テストデータで現在の最良の感情認識モデルの効果を達成および上回ります。39  - 音声イベント検出能力を提供し、音楽、拍手、笑い声、泣き声、咳、くしゃみなどのさまざまな一般的な人間とコンピュータのインタラクションイベントを検出します。40- **効率的な推論:** SenseVoice-Smallモデルは非自己回帰エンドツーエンドフレームワークを採用しており、推論遅延が非常に低く、10秒の音声の推論に70msしかかかりません。Whisper-Largeより15倍高速です。41- **簡単な微調整:** 便利な微調整スクリプトと戦略を提供し、ユーザーがビジネスシナリオに応じてロングテールサンプルの問題を簡単に解決できるようにします。42- **サービス展開:** マルチコンカレントリクエストをサポートする完全なサービス展開パイプラインを提供し、クライアントサイドの言語にはPython、C++、HTML、Java、C#などがあります。43 44<a name="最新动态"></a>45# 最新情報 🔥46- 2024/7:新しく[ONNX](./demo_onnx.py)と[libtorch](./demo_libtorch.py)のエクスポート機能を追加し、Pythonバージョンのランタイム:[funasr-onnx-0.4.0](https://pypi.org/project/funasr-onnx/)、[funasr-torch-0.1.1](https://pypi.org/project/funasr-torch/)も提供開始。47- 2024/7: [SenseVoice-Small](https://www.modelscope.cn/models/iic/SenseVoiceSmall) 多言語音声理解モデルがオープンソース化されました。中国語、広東語、英語、日本語、韓国語の多言語音声認識、感情認識、およびイベント検出能力をサポートし、非常に低い推論遅延を実現しています。48- 2024/7: CosyVoiceは自然な音声生成に取り組んでおり、多言語、音色、感情制御をサポートします。多言語音声生成、ゼロショット音声生成、クロスランゲージ音声クローン、および指示に従う能力に優れています。[CosyVoice repo](https://github.com/FunAudioLLM/CosyVoice) and [CosyVoice オンライン体験](https://www.modelscope.cn/studios/iic/CosyVoice-300M).49- 2024/7: [FunASR](https://github.com/modelscope/FunASR) は、音声認識(ASR)、音声活動検出(VAD)、句読点復元、言語モデル、話者検証、話者分離、およびマルチトーカーASRなどの機能を提供する基本的な音声認識ツールキットです。50 51<a name="Benchmarks"></a>52# ベンチマーク 📝53 54## 多言語音声認識55 56オープンソースのベンチマークデータセット(AISHELL-1、AISHELL-2、Wenetspeech、Librispeech、Common Voiceを含む)でSenseVoiceとWhisperの多言語音声認識性能と推論効率を比較しました。中国語と広東語の認識効果において、SenseVoice-Smallモデルは明らかな効果の優位性を持っています。57 58<div align="center">  59<img src="image/asr_results1.png" width="400" /><img src="image/asr_results2.png" width="400" />60</div>61 62## 感情認識63 64現在、広く使用されている感情認識のテスト指標と方法が不足しているため、複数のテストセットでさまざまな指標をテストし、最近のベンチマークの複数の結果と包括的に比較しました。選択されたテストセットには、中国語/英語の両方の言語と、パフォーマンス、映画、自然な会話などのさまざまなスタイルのデータが含まれています。ターゲットデータの微調整を行わない前提で、SenseVoiceはテストデータで現在の最良の感情認識モデルの効果を達成および上回ることができました。65 66<div align="center">  67<img src="image/ser_table.png" width="1000" />68</div>69 70さらに、テストセットで複数のオープンソースの感情認識モデルを比較し、結果はSenseVoice-Largeモデルがほぼすべてのデータで最良の効果を達成し、SenseVoice-Smallモデルも多数のデータセットで他のオープンソースモデルを上回る効果を達成したことを示しています。71 72<div align="center">  73<img src="image/ser_figure.png" width="500" />74</div>75 76## イベント検出77 78SenseVoiceは音声データのみでトレーニングされていますが、イベント検出モデルとして単独で使用することもできます。環境音分類ESC-50データセットで、現在業界で広く使用されているBEATSおよびPANNモデルの効果と比較しました。SenseVoiceモデルはこれらのタスクで良好な効果を達成しましたが、トレーニングデータとトレーニング方法の制約により、イベント分類の効果は専門のイベント検出モデルと比較してまだ一定の差があります。79 80<div align="center">  81<img src="image/aed_figure.png" width="500" />82</div>83 84## 推論効率85 86SenseVoice-smallモデルは非自己回帰エンドツーエンドアーキテクチャを採用しており、推論遅延が非常に低いです。Whisper-Smallモデルと同等のパラメータ量で、Whisper-Smallモデルより5倍高速で、Whisper-Largeモデルより15倍高速です。同時に、SenseVoice-smallモデルは音声の長さが増加しても、推論時間に明らかな増加はありません。87 88<div align="center">  89<img src="image/inference.png" width="1000" />90</div>91 92<a name="环境安装"></a>93# 環境インストール 🐍94 95```shell96pip install -r requirements.txt97```98 99<a name="用法教程"></a>100# 使用方法 🛠️101 102## 推論103 104任意の形式の音声入力をサポートし、任意の長さの入力をサポートします。105 106```python107from funasr import AutoModel108from funasr.utils.postprocess_utils import rich_transcription_postprocess109 110model_dir = "iic/SenseVoiceSmall"111 112 113model = AutoModel(114    model=model_dir,115    trust_remote_code=True,116    remote_code="./model.py",  117    vad_model="fsmn-vad",118    vad_kwargs={"max_single_segment_time": 30000},119    device="cuda:0",120)121 122# en123res = model.generate(124    input=f"{model.model_path}/example/en.mp3",125    cache={},126    language="auto",  # "zn", "en", "yue", "ja", "ko", "nospeech"127    use_itn=True,128    batch_size_s=60,129    merge_vad=True,  #130    merge_length_s=15,131)132text = rich_transcription_postprocess(res[0]["text"])133print(text)134```135パラメータの説明:136- `model_dir`:モデル名、またはローカルディスク上のモデルパス。137- `trust_remote_code`:138  - `True`は、modelコードの実装が`remote_code`からロードされることを意味し、`remote_code`は`model`コードの正確な位置を指定します(例:現在のディレクトリの`model.py`)。絶対パス、相対パス、およびネットワークURLをサポートします。139  - `False`は、modelコードの実装が[FunASR](https://github.com/modelscope/FunASR)内部に統合されたバージョンであることを意味し、この場合、現在のディレクトリの`model.py`を変更しても効果がありません。FunASR内部バージョンがロードされるためです。モデルコード[こちらを参照](https://github.com/modelscope/FunASR/tree/main/funasr/models/sense_voice)。140- `vad_model`:VAD(音声活動検出)を有効にすることを示します。VADの目的は、長い音声を短いクリップに分割することです。この場合、推論時間にはVADとSenseVoiceの合計消費が含まれ、エンドツーエンドの遅延を表します。SenseVoiceモデルの推論時間を個別にテストする場合は、VADモデルを無効にできます。141- `vad_kwargs`:VADモデルの設定を指定します。`max_single_segment_time`:`vad_model`による音声セグメントの最大長を示し、単位はミリ秒(ms)です。142- `use_itn`:出力結果に句読点と逆テキスト正規化が含まれるかどうか。143- `batch_size_s`:動的バッチの使用を示し、バッチ内の音声の合計長を秒(s)で測定します。144- `merge_vad`:VADモデルによって分割された短い音声フラグメントをマージするかどうか。マージ後の長さは`merge_length_s`で、単位は秒(s)です。145- `ban_emo_unk`:emo_unkラベルを無効にする。146 147すべての入力が短い音声(30秒未満)であり、バッチ推論が必要な場合、推論効率を向上させるためにVADモデルを削除し、`batch_size`を設定できます。148 149```python150model = AutoModel(model=model_dir, trust_remote_code=True, device="cuda:0")151 152res = model.generate(153    input=f"{model.model_path}/example/en.mp3",154    cache={},155    language="auto", # "zn", "en", "yue", "ja", "ko", "nospeech"156    use_itn=True,157    batch_size=64, 158)159```160 161詳細な使用方法については、[ドキュメント](https://github.com/modelscope/FunASR/blob/main/docs/tutorial/README.md)を参照してください。162 163### 直接推論164 165任意の形式の音声入力をサポートし、入力音声の長さは30秒以下に制限されます。166 167```python168from model import SenseVoiceSmall169from funasr.utils.postprocess_utils import rich_transcription_postprocess170 171model_dir = "iic/SenseVoiceSmall"172m, kwargs = SenseVoiceSmall.from_pretrained(model=model_dir, device="cuda:0")173m.eval()174 175res = m.inference(176    data_in=f"{kwargs['model_path']}/example/en.mp3",177    language="auto", # "zn", "en", "yue", "ja", "ko", "nospeech"178    use_itn=False,179    **kwargs,180)181 182text = rich_transcription_postprocess(res[0][0]["text"])183print(text)184```185 186## サービス展開187 188未完了189 190### エクスポートとテスト191<details><summary>ONNXとLibtorchのエクスポート</summary>192 193#### ONNX194```python195# pip3 install -U funasr funasr-onnx196from pathlib import Path197from funasr_onnx import SenseVoiceSmall198from funasr_onnx.utils.postprocess_utils import rich_transcription_postprocess199 200 201model_dir = "iic/SenseVoiceSmall"202 203model = SenseVoiceSmall(model_dir, batch_size=10, quantize=True)204 205# inference206wav_or_scp = ["{}/.cache/modelscope/hub/{}/example/en.mp3".format(Path.home(), model_dir)]207 208res = model(wav_or_scp, language="auto", use_itn=True)209print([rich_transcription_postprocess(i) for i in res])210```211備考:ONNXモデルは元のモデルディレクトリにエクスポートされます。212 213#### Libtorch214```python215from pathlib import Path216from funasr_torch import SenseVoiceSmall217from funasr_torch.utils.postprocess_utils import rich_transcription_postprocess218 219 220model_dir = "iic/SenseVoiceSmall"221 222model = SenseVoiceSmall(model_dir, batch_size=10, device="cuda:0")223 224wav_or_scp = ["{}/.cache/modelscope/hub/{}/example/en.mp3".format(Path.home(), model_dir)]225 226res = model(wav_or_scp, language="auto", use_itn=True)227print([rich_transcription_postprocess(i) for i in res])228```229備考:Libtorchモデルは元のモデルディレクトリにエクスポートされます。230 231<details>232 233### 展開234 235未完了236 237## 微調整238 239### トレーニング環境のインストール240 241```shell242git clone https://github.com/alibaba/FunASR.git && cd FunASR243pip3 install -e ./244```245 246### データ準備247 248データ形式には以下のフィールドが含まれている必要があります:249```text250{"key": "YOU0000008470_S0000238_punc_itn", "text_language": "<|en|>", "emo_target": "<|NEUTRAL|>", "event_target": "<|Speech|>", "with_or_wo_itn": "<|withitn|>", "target": "Including legal due diligence, subscription agreement, negotiation.", "source": "/cpfs01/shared/Group-speech/beinian.lzr/data/industrial_data/english_all/audio/YOU0000008470_S0000238.wav", "target_len": 7, "source_len": 140}251{"key": "AUD0000001556_S0007580", "text_language": "<|en|>", "emo_target": "<|NEUTRAL|>", "event_target": "<|Speech|>", "with_or_wo_itn": "<|woitn|>", "target": "there is a tendency to identify the self or take interest in what one has got used to", "source": "/cpfs01/shared/Group-speech/beinian.lzr/data/industrial_data/english_all/audio/AUD0000001556_S0007580.wav", "target_len": 18, "source_len": 360}252```253詳細は:`data/train_example.jsonl`を参照してください。254 255### トレーニングの開始256 257`finetune.sh`の`train_tool`を、前述のFunASRパス内の`funasr/bin/train_ds.py`の絶対パスに変更することを忘れないでください。258 259```shell260bash finetune.sh261```262 263## WebUI264 265```shell266python webui.py267```268 269<div align="center"><img src="image/webui.png" width="700"/> </div>270 271# お問い合わせ272 273使用中に問題が発生した場合は、githubページで直接Issuesを提起できます。音声に興味のある方は、以下のDingTalkグループQRコードをスキャンしてコミュニティグループに参加し、交流と議論を行ってください。274 275|                           FunAudioLLM                            |                          FunASR                          |276|:----------------------------------------------------------------:|:--------------------------------------------------------:|277| <div align="left"><img src="image/dingding_sv.png" width="250"/> | <img src="image/dingding_funasr.png" width="250"/></div> |278 279