File size: 6,690 Bytes
94179fe 61e8edc 94179fe eeac9c2 32936e6 eeac9c2 61e8edc 32936e6 61e8edc 32936e6 61e8edc 32936e6 61e8edc 32936e6 61e8edc 32936e6 d9cc585 61e8edc d9cc585 32936e6 61e8edc 32936e6 61e8edc d9cc585 32936e6 61e8edc 32936e6 61e8edc eeac9c2 61e8edc eeac9c2 61e8edc eeac9c2 61e8edc eeac9c2 61e8edc eeac9c2 61e8edc eeac9c2 61e8edc eeac9c2 61e8edc 32936e6 61e8edc 32936e6 61e8edc d9cc585 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | ---
license: cc-by-sa-4.0
language: ja
tags: [coreml, style-bert-vits2]
base_model: ku-nlp/deberta-v2-large-japanese-char-wwm
---
[English](README.en.md)
# SBV2 Core ML 共通モデル・辞書
iPhone/Apple Silicon Mac用の共通BERTとOpen JTalk辞書です。
[SDK・サンプルアプリ](https://github.com/Corvelis/sbv2-coreml)と、別配布の[声モデル](https://huggingface.co/AILogDev/sbv2-coreml-jvnv-f1-jp)を合わせて使います。
## 使う版を選ぶ
**INT8版は`int8/`、元のFP32版は`float32/`です。** 各フォルダにBERT・辞書・ライセンス・取得用マニフェストが揃っています。
声モデルは両方で同じものを使えます。
| 版・ファイル一覧 | 共通BERT・辞書 | JVNV込み | 選ぶ目安 | アプリ用マニフェスト |
|---|---:|---:|---|---|
| [INT8](https://huggingface.co/AILogDev/sbv2-coreml-common/tree/973d6e239af305f0d78a8bf30c6af5093c0fd47d/int8) | 約503 MB | 約797 MB | ファイル容量を抑えたい | [INT8版を取得](https://huggingface.co/AILogDev/sbv2-coreml-common/resolve/973d6e239af305f0d78a8bf30c6af5093c0fd47d/int8/download.json) |
| [FP32(float32)](https://huggingface.co/AILogDev/sbv2-coreml-common/tree/973d6e239af305f0d78a8bf30c6af5093c0fd47d/float32) | 約1.52 GB | 約1.81 GB | 重み量子化による数値差を避けたい、準備時間を短くしたい | [FP32版を取得](https://huggingface.co/AILogDev/sbv2-coreml-common/resolve/973d6e239af305f0d78a8bf30c6af5093c0fd47d/float32/download.json) |
INT8版はBERTの重みを8bitで保存します。BERTの演算と入出力は、両版ともFP32です。
iOS 18以上、macOS 15以上のApple Siliconに対応します。コンパイルキャッシュ用に追加の空き容量が必要です。
容量は配布ファイルの概算であり、RAMの削減率を示すものではありません。
## サンプルアプリから取得する
**モデル設定 → URLからモデルを取得 → 取得するモデル:共通モデル**を開き、
**共通モデルの版**で**INT8(約503 MB)**または**FP32(約1.52 GB)**を選び、**ダウンロード**を押します。
取得URLが自動設定されます。カスタムURLで取得する場合やSDKから取得する場合は、次のURLを使えます。
以下はファイル一式の版を固定したURLです。
**INT8版**
```text
https://huggingface.co/AILogDev/sbv2-coreml-common/resolve/973d6e239af305f0d78a8bf30c6af5093c0fd47d/int8/download.json
```
**元のFP32版**
```text
https://huggingface.co/AILogDev/sbv2-coreml-common/resolve/973d6e239af305f0d78a8bf30c6af5093c0fd47d/float32/download.json
```
取得後に**モデルを準備**を押します。声モデルは別途取得するか、自分で変換した声フォルダを選びます。
取得後の音声合成はオフラインで動作します。
## Macで片方だけ取得する
[Hugging Face CLI](https://huggingface.co/docs/huggingface_hub/guides/cli)を使います。
`--include`で選んだ版だけを取得してください。リポジトリ一式の取得では両版と互換用ファイルもダウンロードされます。
**INT8版 → `models/int8/`**
```sh
hf download AILogDev/sbv2-coreml-common \
--revision 973d6e239af305f0d78a8bf30c6af5093c0fd47d \
--include "int8/*" --local-dir models
```
**元のFP32版 → `models/float32/`**
```sh
hf download AILogDev/sbv2-coreml-common \
--revision 973d6e239af305f0d78a8bf30c6af5093c0fd47d \
--include "float32/*" --local-dir models
```
サンプルの**共通モデル**には、取得した`int8/`または`float32/`を選びます。
SDKにはそのフォルダの`bert/`と`dictionary/`、別の声フォルダを渡します。
`.mlpackage`の中身を含め、選んだフォルダ全体を取得してください。
## 切り替えと音質・速度
取得済みモデルを切り替えるには、合成・再生を停止し、**共通モデル**で使う版のフォルダを選び、**モデルを準備**を押します。
フォルダ表示にINT8/FP32の版も表示します。取得欄での版選択だけでは、準備済みモデルは切り替わりません。
SDKでは処理の終了を待ってから、選んだ共通フォルダで`load`と`warmUp`を行います。
古いモデルとキャッシュは自動削除されません。不要な共通フォルダを削除する場合はアプリを終了するかSDKで`unload`し、共用する声フォルダは保持します。
| iPhone 17 Pro・JVNV Neutralの測定例 | INT8版 | 元のFP32版 |
|---|---:|---:|
| コンパイル済みキャッシュがある再ロード後の準備(`load`+`warmUp`) | 約18秒 | 約6秒 |
| 準備後の3文合成RTF中央値 | 0.071 | 0.067 |
初回コンパイル、再生時間、LLMとの同時実行は含みません。声・文章・端末で値は変わり、INT8版が常に高速になるわけではありません。
BERTの量子化によって抑揚・間・音声の長さ・波形に差が生じる場合があります。声モデルの重みと辞書は変更しません。
JVNV Neutralの比較音声では聴き比べで気になる差はありませんでした。採用する声と文章でも確認してください。
[SDK導入](https://github.com/Corvelis/sbv2-coreml/blob/main/docs/sdk-guide.ja.md) ·
[サンプルの起動](https://github.com/Corvelis/sbv2-coreml/blob/main/docs/getting-started.ja.md) ·
[自分で共通BERTを圧縮する](https://github.com/Corvelis/sbv2-coreml/blob/main/docs/compression.ja.md)
## 以前の取得URL
以前の固定リビジョンの取得URLは引き続き使えます。ルートの`download.json`・`bert/`・`dictionary/`は既存URLの互換用INT8モデルです。
これから取得する場合は、上の選択表から`int8/`または`float32/`を選んでください。
## 出典とライセンス
BERTは京都大学の自然言語処理研究グループによる[DeBERTa日本語モデル](https://huggingface.co/ku-nlp/deberta-v2-large-japanese-char-wwm)からの変換物です。
原本のコミットは`547b0e8b044fba3f9b84d0ab9f990440bd130c8b`です。
BERTは**CC BY-SA 4.0**です。各版の`LICENSE.md`、出典と変換記録の`provenance.json`を参照してください。
Open JTalk 1.11 UTF-8辞書には別のBSD系条件があり、各版の`dictionary/COPYING`に記載しています。
各版の`checksums.json`でファイルを検証できます。SDK・サンプル・変換ツールのコードは**AGPL-3.0**です。
非公式の変換物であり、原作者による承認・推奨を示すものではありません。
|