# vLabeler [![Discord](https://img.shields.io/discord/984044285584359444?style=for-the-badge&label=discord&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/yrTqG2SrRd) 言語を選択: [English](../README.md) | [简体中文](README-zhCN.md) | [日本語](README-ja.md) | [한국어](README-ko.md) **(このページは Google 翻訳により作成されたものをベースとしています。)** `vLabeler` はオープンソースの音声ラベリングアプリケーションで、次のことを目指しています。 - モダンで流暢な UI/UX - さまざまな種類の音声生成ソフトウェアで使用される、カスタマイズ可能なラベル付けプロセス - マルチプラットフォームをサポートする高性能 **ヘルプ、提案、問題レポートなどについては、[Discord](https://discord.gg/yrTqG2SrRd) にて承っております。**
デモ動画(英語) このデモ動画は 1.0.0-beta1 に基づいています。最新バージョンでは、一部の UI 要素が異なります。 [YouTube](https://youtu.be/xFX8SRrJEzM) | [bilibili](https://www.bilibili.com/video/BV1Ve4y1S7FF)
## ダウンロード [Releases](https://github.com/sdercolin/vlabeler/releases) を参照してください。 Releases では、次のプラットフォーム用のアプリケーションパッケージが提供されます。 - Windows: `~win64.zip` - macOS (Intel): `~mac-x64.dmg` - macOS (Apple Silicon): `~mac-arm64.dmg` - Ubuntu: `~amd64.deb` その他の種類の Linux OS の場合は、自分でビルドする必要がある場合があります。 ## ビルド vLabeler は [Compose Multiplatform](https://github.com/JetBrains/compose-jb) を使用して開発しています。Gradle を使用して アプリケーションをビルドできます。[詳細](https://github.com/JetBrains/compose-jb/tree/master/tutorials/Native_distributions_and_local_execution) 現在、クロスプラットフォームのビルドはサポートされていません。ビルドで使われた OS で実行可能なパッケージのみがビルドされます。 ビルドには **JDK 17+** が必要になります。 ``` // インストーラーをビルドします ./gradlew packageDistributionForCurrentOS // または、実行可能なアプリをビルドします ./gradlew createDistributable ``` ## シナリオ vLabeler の多くの動作は、カスタマイズ可能な `ラベラー` に依存しています。 現在、ビルトインのラベラーとして以下が提供されています。 #### UTAU oto.ini を編集する ![](utau-singer.gif) UTAU oto の編集では、下記の項目が使用できます。 - UTAU oto ラベラー `oto.ini` ファイルを 1 つだけ編集したい場合は、このラベラーを使用してください。 - UTAU singer ラベラー 多音階音源など複数の `oto.ini` ファイルを編集する場合は、このラベラーを使用してください。プロジェクトを作成するとき、 音源のルートフォルダ (通常は `character.txt` ファイルが含まれる) を `サンプルディレクトリ` として設定してください。 #### 音声ラベルを編集する ![](nnsvs-singer.gif) NNSVS/ENUNU および類似なシステムで使用されるラベルファイルの場合、下記の項目が使用できます。 - Sinsy lab ラベラー このラベラーは Sinsy (NNSVS/ENUNU) lab ファイル用で、時間単位として `100ns` を使用し、セパレーターとして ` ` (スペース) を使用します。 プロジェクトごとに 1 つのラベルファイルのみを編集できます。wav ファイルは、ファイル名によってラベルファイルにバインドされます。 例えば、入力ラベルファイルが `foo.lab` の場合、サンプルディレクトリから `foo.wav` という名前の wav ファイルが選択されます。 - Audacity ラベラー このラベラーは、Audacity によって作成された `ラベル` ファイル用で、時間単位として `s` を使用し、セパレーターとして `\t` ( タブ) を使用します。 プロジェクトごとに 1 つのラベルファイルのみを受け入れます。wav ファイルは、ファイル名によってラベル ファイルにバインドされます。 例えば、入力ラベルファイルが `foo.lab` の場合、サンプルディレクトリから `foo.wav` という名前の wav ファイルが選択されます。 - NNSVS singer ラベラー このラベラーは基本的に `Sinsy lab ラベラー` と同じですが、複数のラベルファイルを扱うことができます。 通常、次のファイル構造がある場合: ``` - singer - wav - 1.wav - 2.wav - lab - 1.ラボ - 2.ラボ ``` `サンプルディレクトリ` を `singer` フォルダに設定することで、すべてのラベルファイルを含むプロジェクトを作成できます。 ラベラーの設定で、`wav` および `lab ` フォルダ名を変更できます。 #### その他(ビルトインではない) - TextGrid labeler (for Praat TextGrid files): [GitHub](https://github.com/sdercolin/vlabeler-textgrid) ## ラベル作成手順 1. `新規プロジェクト...` をクリックします 2. サンプルファイルを含むフォルダを `サンプルディレクトリ` として選択します 3. 必要に応じて `プロジェクト名` を変更します 4. ラベラーを選択します。使用するラベラーの [シナリオ](#シナリオ) を参照してください 5. プロジェクト作成の方法を選択します。ほとんどの場合は、`デフォルト` が適切です 6. 単一の特定のファイルをインポートしたい場合は、`ファイル` を選択し、そのファイルを選択します。ラベラーによっては、`ファイル` が使用できない場合があります 7. テンプレートをプラグインで生成する場合は、`テンプレート生成器` を選択し、プラグインを設定します 8. `完了` をクリックして編集を開始します 9. メニューの `エクスポート` をクリックして、編集したラベルファイルを取得します より詳細なカスタマイズが必要な場合は、折りたたまれている詳細設定や、ラベラー・プラグインが提供する設定などを確認してください。 ## クイック編集を開始する 一部のラベラーは `クイック編集` 機能をサポートしており、単一のファイルまたはフォルダを入力として使用して編集を開始できます。 スタートページの `クイック編集` リスト内の項目をクリックし、ファイルまたはフォルダを選択してクイック編集を開始できます。 クイック編集で作成されたプロジェクトでは: - 自動エクスポートがデフォルトで有効になっています。つまり、プロジェクトを保存すると、ラベルファイルが自動的に保存されます。 - クイック編集を繰り返し開始すると、プロジェクトファイルが静かに上書きされる可能性があります。 - ラベラーの作者によってクイック編集用に特定の値に設定された項目を除いて、保存されたラベラー設定が使用されます - `ファイル` -> `プロジェクト設定...` で一部の設定を変更できます ## 利用可能なキーボード/マウス操作 macOS を使用している場合、下記の `Ctrl` は `Command` に置き換えてください。 `設定` -> `環境設定` -> `ショートカット` でキーバインディングをカスタマイズできます。 ### パラメータラインを移動する - 通常のパラメータをマウスでドラッグ: それだけを移動 - 主要パラメータをマウスでドラッグ: すべてのラインをまとめて移動 - `Shift`: 通常/主要を反転します。例えば、Shift キーを押しながら主要パラメータをマウスでドラッグすると、それだけが移動します。 - `Q`/`W`/`E`/`R`/... : 現在のカーソル位置に対応するパラメータラインを移動します。順序はラベラーで定義されています。 この機能は、単一エントリ編集モードでのみ使用できます。 ### オーディオ再生 - `Space`: 現在のエントリを再生するか、再生を停止します - `Shift` + `Space`: 現在のサンプルファイルを再生するか、再生を停止します - `Ctrl` + `Shift` + `Space`: 現在の画面範囲で再生するか、再生を停止します - (再生ツールを除き、任意のツールで)マウスの右クリック: クリックした区間を再生 - (カーソルツールで)`Alt` + パラメータの移動: パラメータ位置の音声を再生 上記操作の他にも、[再生ツール](#再生ツール)があるので、ご参照ください。 ### スクロール - `Shift` + マウススクロール: 横スクロール - `F` または下部バーの中央にあるフォーカスボタン: 現在のエントリを画面の中央に表示します ### ズームイン/ズームアウト - `=` または下部バーの `+` ボタン: ズームイン - `-` または下部バーの `-` ボタン: ズームアウト - `Ctrl` + `Shift` + マウススクロール: ズームイン/ズームアウト - 下部バーの解像度ボタン: 解像度入力用のダイアログを開く ### エントリ/サンプルを切り替える - マウススクロール: 前/次のエントリに移動 - `Up`/`Down`: 前/次のエントリに移動 - 下部バーの `<`/`>` ボタン: 前/次のエントリに移動 - `Ctrl` + マウススクロール: 前/次のサンプルに移動 - `Ctrl` + `Up`/`Down`: 前/次のサンプルに移動 - 下部バーの `<<`/`>>` ボタン: 前/次のサンプルに移動 - `Ctrl` + `G` または下部バーのエントリ番号ボタン: `エントリに移動...` ダイアログを表示 ### エントリの備考を設定する - `J` またはエントリタイトルバーの `タグの追加` ボタン: エントリのタグの編集を開始します - `K` またはエントリタイトルバーの `スター` ボタン: エントリの `スターマーク` ステータスを切り替えます - `L` またはエントリタイトルバーの `完了` ボタン: エントリの `完了` ステータスを切り替えます #### 備考に関する設定 `設定` -> `環境設定` -> `エディタ` -> `備考` で設定を変更して、必要のない備考の項目を非表示にすることができます。 ### 編集後アクション `設定` -> `環境設定` -> `エディタ` -> `編集後アクション` で設定を変更して、下記のアクションを編集後に自動的に実行することができます。 - 次のエントリに移動 - 編集したエントリを `完了` にする(デフォルトで有効) ### 一括編集プラグインを起動する - `F1`~`F8`: 対応する一括編集プラグインを起動します。使用する前に `ツール` -> `一括編集` -> `スロット設定...` で設定する必要があります。 プラグインについては、詳細は [プラグイン](#プラグイン) を参照してください。 ## 複数エントリ編集モード 連続モードのラベラー([例](#音声ラベルを編集する))の場合、 単一エントリ編集モードと、同じサンプルファイル内の接続されているすべてのエントリを表示して編集できる複数エントリ編集モードがあります。 複数エントリ編集モードはデフォルトで有効になっています。下部バーの中央にある `単一/複数` ボタンをクリックして切り替えることができます。 複数エントリ編集モードでは、エントリ名がエディタの上部に表示されます。 名前をクリックすると、次のアクションが実行されます。 - クリック: エントリの名前を変更します - ロングクリック: エントリに移動 ## オーディオフォーマットのサポート より多くの音声フォーマットをサポートするには、`ffmpeg` をインストールしてください。 [公式サイト](https://ffmpeg.org/download.html)からダウンロードできます。 その後、`設定` -> `環境設定` -> `グラフ` -> `オーディオフォーマットのサポート` で `ffmpeg` のパスを設定する必要があります。 macOS/Linux の場合、`ffmpeg` を `bin` またはシステムパスにインストールすることで、デフォルトのパス `ffmpeg` で動作します。 ## ビデオ表示 サンプルファイルと同じファイル名(拡張子を除く)と長さのビデオファイルがある場合、編集時に再生できます。 例: ``` (サンプルディレクトリ) - 1.wav - 1.mp4 - 2.wav - 2.webm ``` **この機能を使用するには、VLC をインストールする必要があります。** [ここ](https://www.videolan.org/vlc/index.html)からダウンロードできます。 Apple Silicon 搭載 mac でも、このリポジトリの `Release` ページからダウンロードしたアプリケーションを使用している場合は、 `macOS (AppleSilicon)` ではなく `macOS` のバージョンをインストールしてください。 ショートカット `V` と `Shift` + `V` で、ビデオを画面の左下か新しいウィンドウで表示できます。 ビデオは、サンプル音声と同期し、無音で再生されます。 ## エントリの閲覧 エントリリストを表示する 2 つのコンポーネントがあります。 1. ピン留めされたエントリリスト: デフォルトでエディタの右側に表示されます。メニューの `表示` -> `エントリリストをピン留め`で切り替えることが できます。これは、フル機能のエントリフィルターを提供します (後述)。 2. `エントリに移動...` ダイアログ: `Ctrl` + `G` を押すか、下部バーのエントリ番号ボタンをクリックすると表示されます。 基本なエントリフィルターを提供します。 ### 検索とフィルタリング どちらのエントリリストでも、次の構文を使用してエントリを検索できます。 ``` aaa;name:bbb;sample:ccc;tag:ddd ``` `;` で複数の条件を組み合わせることができます。すべての条件に一致するエントリのみが表示されます。 次の条件キー (`:` の前の部分) がサポートされています。 - キーなし: エントリ名、サンプル名(拡張子を除く)、またはタグで検索 - `name`: エントリ名で検索 - `sample`: サンプル名(拡張子を除く)で検索 - `tag`: タグで検索 この検索の一致タイプは `含む` です。 ピン留めされたエントリリストでは、`展開` ボタンをクリックすると、さらにオプションが表示されます。 `完了` フィルターと `スターマーク` フィルターの場合、クリックすると `フィルタしない`、`スターマークのある/完了のみを表示`、 `スターマークのない/未完了のみを表示`の順にが切り替わります。 すべての条件は `AND` ロジックで結合されます。 `もっと見る` ボタンをクリックすると、設定ダイアログが開き、高度なフィルタリングが可能になります。 ### フィルターをエディタにリンクする デフォルトでは、プロジェクトナビゲーション ( キーボードショートカット、マウススクロール、またはボタンクリックなどで次のサンプル/エントリに移動) フィルターの影響を受けません。 たとえば、エントリリストでエントリ `5` を除外した場合でも、 エントリ `4` から `Down` キーを押すとエントリ `5`に移動します。 フィルターの `リンク` ボタンは、特定のエントリ集合に集中するのに役立ちます。`リンク` ボタンをクリックすると、ピン留めされたエントリリストに表示さ れていないエントリは、ナビゲーションにおいてはスキップされます。 上記の例では、`Link` ボタンをクリックした場合、エントリ `5` ではなく、エントリ `6` に移動します。 `エントリに移動...` ダイアログはリンクされたフィルターの影響を受けることなく、任意のエントリに移動できます。 ピン留めされたエントリリストのフィルター設定を変更またはクリアする必要はありません。 ## ツール 以下の編集ツールを提供しています。 `編集` -> `ツール` でツールを切り替える他、`表示` -> `ツールボックスを表示` でツールボックスを表示することができます。 ### カーソル パラメータコントローラをドラッグする通常のカーソルツール。 ### はさみツール クリック位置で該当のエントリを2つに分割します。 このツールは主に、[複数エントリ編集モード](#複数エントリ編集モード)で新しいラベルを作成するために使用されます。 デフォルトでは、はさみで有効な位置をクリックすると: 1. 音素を確認できるように、カット後の1つ目の部分の音声が再生されます 2. エディタに入力ボックスが表示され、1つ目のエントリの名前を変更するよう求められます 3. `Enter` キーを押して入力を確定するか、`Esc` キーを押してキャンセルします 4. クリック位置からカーソルを移動すると、入力が確定されます 5. カットが行われます。1つ目のエントリは入力を名前として使用し、2つ目のエントリは元の名前を使用します 6. カット後、エディタは1つ目のエントリに移動します 単一エントリ編集モードでは、名前の入力はエディタではなくダイアログで求められます。 これらのアクションは、 `環境設定` -> `エディタ` -> `はさみ` でカスタマイズできます。 ### ハンドツール エディタ上でドラッグしてキャンバスをスクロールします。 ### 再生ツール マウスクリックまたはドラッグで、現在のサンプルファイルの特定の範囲を再生します。 デフォルトでは、以下のアクションが使用できます。 キーバインドは、 `設定` -> `環境設定` -> `ショートカットキー設定` -> `マウス(クリック)` で変更できます。 - 左クリック: クリック位置からファイルの最後まで再生します - 右クリック: クリック位置から画面の最後まで再生します - `Shift` + 左クリック: ファイルの先頭からクリック位置まで再生します - `Shift` + 右クリック: 画面の先頭からクリック位置まで再生します - `Ctrl` + 左クリック & ドラッグ: ドラッグ範囲の音声を再生します - `Ctrl` + `Shift` + 左クリック & ドラッグ: ドラッグ範囲の音声を繰り返し再生します ## ラベラー `ラベラー` は、特定の音声合成システムに対応する動作を定義する `vLabeler` の構成ファイルの一つです。 たとえば、ビルトインの `UTAU oto ラベラー` は、UTAU の `oto.ini` ファイルを編集するためのラベラーです。 ラベラーは下記のものを定義します。 - 音声エントリに含まれるデータ/フィールド (たとえば、UTAU の場合、 `固定範囲` 、 `先行発声` 、 `Overlap` などが必要です) - データ/フィールドがパラメータコントローラーとしてエディターに表示される方法 - エントリが互いに接続するかどうか (接続とは、すべてのエントリの開始は、前のエントリの終了と同じにする必要があることです) - ラベルファイルを解析に `vLabeler` プロジェクトに読み込む方法 - `vLabeler` プロジェクトからラベルファイルを生成する方法 - `vLabeler` プロジェクトの下にサブプロジェクトを構築する方法 - 特定の種類のラベルファイルを編集する際のその他の動作 ラベラーは、ラベラーのファイル自体を変更することなく、GUI を介していくつかの構成可能なフィールドをサポートする場合もあります。 設定は、`新規プロジェクト` ページのラベラーセレクターの横にある `歯車` アイコンにあります。 vLabeler に対応していない音声合成ソフトのラベルを編集したい場合は、 そのソフトウェアをサポートする開発を依頼する代わりに、ラベラーを作成して機能させることができます(ただし、コーディングに関するある程度の知識が求め られます)。 [Develop Custom Labelers](../docs/labeler-development.md) (英語)でラベラーを開発方法を確認してください。 `設定` -> `ラベラー...` で独自のラベラーをインポートできます。 また、自分で作成したラベラーを他のユーザーに配布したり、我々に連絡してビルトインにすることもできます。 ## プラグイン 現在、2 種類のプラグインが利用可能です。 ### テンプレート生成器 テンプレート生成器は、入力ファイルとパラメータからプロジェクトテンプレートを生成するのに役立ちます。 ラベラーによって生成されたデフォルトのテンプレートは、すべてのサンプルファイルを含めるのに文字通り最低限のテンプレートです。 テンプレート生成器プラグインを使用すると、複雑なテンプレートを作成できます。また、ユーザー入力のパラメータでよりカスタマイズ可能です。 選択したラベラーをサポートするすべての有効なテンプレート生成器は、`新規プロジェクト` ページで選択できます。 テンプレート生成器は、`設定` -> `テンプレート生成器...` でインポート/削除/無効化できます。 ### 一括編集プラグイン 一括編集プラグインを使用して、複雑な一括編集タスクを実行できます。 `ツール` -> `一括編集` で利用可能な一括編集プラグインを見つけることができます。表示されたプラグインの中には、現在のラベラーではサポートされ ていないためクリックできないものがあります。 `ツール` -> `一括編集` -> `プラグインマネージャー...` で一括編集プラグインをインポート/削除/無効化できます。 ### スクリプトの使用 vLabeler では、カスタムスクリプトを使用してラベリングタスクを自動化できます。 詳細については、[Use custom scripts in vLabeler to complete your labeling tasks](../readme/use_scripts.md) を参照してください。 #### 使用可能なプラグイン(ビルトインを除く) - [resampler-test](https://github.com/sdercolin/vlabeler-resampler-test): 現在のエントリの resampler の出力を再生します。 setParam の合成テスト(F10)のような機能です。 - [oto-timing-test](https://github.com/chexq09/vlabeler-oto-timing-check): 現在のエントリをメトロノーム音声と合成し、先行発声の設 定をチェックします。setParam の発声タイミングのチェック(F8)のような機能です。 ### プラグイン開発 アプリケーションのプラグイン開発を歓迎します。 プラグインはどこにでも配布できます。また、プルリクエストを作成してビルトインにすることもできます。 詳細については、[Develop Plugins for vLabeler](../docs/plugin-development.md) (英語)を参照してください。 ## ログ 開発/デバッグ/テスト目的で、`ヘルプ` -> `ログディレクトリを開く` をクリックすると、ログを見つけることができます。 問題を報告する際は、最近のログファイルを添付してください。 ## アプリ使用データのトラッキング [アプリ使用データのトラッキング](tracking.md) を参照してください。 ## 既知の問題点 1. 現在、`ショートカット` -> `マウススクロール操作` の `キャンバスを左・右にスクロール` は変更できません。タッチパッドをお使いの場合は、同ページの `次・前のエントリ` 操作のキーバインディングを削除することをおすすめします。そうすると、エントリの切り替えをせずに、タッチパッドで水平方向に キャンバスをスクロールすることができます。 2. Linux では、ファイル選択ダイアログで空のフォルダを選択できない場合があります。内部に何かを作成するか、パスをコピーして貼り付けてください 3. Linux では、自動メモリ回収がうまく機能しない場合があります。`ツール` -> `メモリを回収` で手動でメモリを解放できます。 4. ウィンドウが予期せずフリーズすることがあります。ウィンドウのサイズを変更して更新できます。 5. メニューバー以外のすべてのテキストが表示されない場合は、環境変数 `SKIKO_RENDER_API` を `SOFTWARE` に設定してください。 6. Linux の一部のディストリビューションでは、ファイルダイアログが正常に機能しない場合があります。その場合は、`設定` -> `環境設定` -> `その他` で独自のファイルダイアログを有効にできます。ただし、独自のファイルダイアログは基本的な機能しか備えていないことに注意してください。 ### ローカライズのヘルプ (コード貢献者以外) [時雨ゆん](https://twitter.com/Yun_Shigure)