winget install --id=sdercolin.vlabeler -e
open source voice labeling application
Select Language: English | 简体中文 | 日本語 | 한국어
vLabeler
is an open-source voice labeling application with the following objectives:
For assistance, feedback, reporting issues, and more, please join our Discord.
Demo video (in English) Please note that this demo video is a bit outdated (1.0.0-beta1). Some UI elements may be different in the latest version.
See Releases.
Packaged application for the following platforms are provided in the releases.
~win64.zip
~mac-x64.dmg
~mac-arm64.dmg
~amd64.deb
For other types of Linux os, you may have to build it by yourself.
vLabeler is built with Compose Multiplatform. You can use Gradle to build the application. See more
Currently, cross-platform building is not supported. Only packages for your OS are built.
Please ensure you have JDK 17+ for building.
// Package by an installer
./gradlew packageDistributionForCurrentOS
// Or, build an executable app
./gradlew createDistributable
Many behaviors of vLabeler depend on customizable labeler
s.
Currently, the followings are provided as built-in labelers:
For UTAU oto editing, there are two items in the built-in labeler list:
UTAU oto labeler
If you only want to edit one oto.ini
file, please use this labeler.
UTAU singer labeler
If you want to edit multiple oto.ini
files under a singer voicebank, please use this labeler.
Please set the singer's root folder (which usually contains a character.txt
file) as the Sample Directory
when you
create the project.
For label files used in NNSVS/ENUNU and similar systems, the following options are available now:
Sinsy lab labeler
This labeler is for Sinsy (NNSVS/ENUNU) lab files, which uses 100ns
as the time unit and use
(space) as the
separator.
It only accepts one label file per project. A wav file is bound to the label file by the file name, e.g.,
if the input label file is foo.lab
, the wav file named foo.wav
will be selected from the Sample Directory
.
Audacity labeler
This labeler is for Labels
file created by Audacity, which uses s
as the time unit and use \t
(tab) as the
separator.
It only accepts one label file per project. A wav file is bound to the label file by the file name, e.g.,
if the input label file is foo.txt
, the wav file named foo.wav
will be selected from the Sample Directory
.
NNSVS singer labeler
This labeler is basically the same with the Sinsy lab labeler
, but it can handle multiple label files.
Typically, if you have the following file structures:
- singer
- wav
- 1.wav
- 2.wav
- lab
- 1.lab
- 2.lab
you can create a project containing all the label files by setting Sample Directory
to the singer
folder.
You can change the wav
and lab
folder names in the labeler's settings.
New project...
Sample Directory
Project name
if you would likeDefault
is suitable for most casesFile
and set the file path. This option is not allowed with
some labelersTemplate generator
and set up the pluginFinish
and start editingExport
in the menu to get the edited label fileThere are more settings folded as Advanced settings
, or provided by the labelers/plugins, please check them out if you
need more customization.
Some labelers support the Quick edit
feature, which allows you to start editing with only single file or folder
as input. The other settings are automatically set by the labeler.
You can click the item in the Quick Edit
list in the start page and select the file or folder to start quick edit.
In a project that is created through quick edit:
File
-> Project settings...
Note that the following Ctrl
is mapped to Command
if you are using macOS.
You can customize the key bindings in Settings
-> Prefereneces
-> Keymaps
.
Shift
: invert normal/primary. e.g. mouse drag on primary parameters with Shift pressed only moves itself.Q
/W
/E
/R
/... : move the corresponding parameter line to current cursor position. The order is defined in the
labeler. Note that this feature is only available in the single entry editing mode.Space
: play the current entry, or stop playing if already playingShift
+ Space
: play the current sample file or stop playing if already playingCtrl
+ Shift
+ Space
: play the audio with current screen range or stop playing if already playingAlt
+ mouse drag on parameters: play the audio near the cursor's position while movingPlease also see the section of the Playback tool for more actions.
Shift
+ mouse wheel scroll: horizontal scrollF
or Focus button in the center of the bottom bar: Scroll to center the current entry on the screen=
or +
button in the bottom bar: zoom in-
or -
button in the bottom bar: zoom outCtrl
+ Shift
+ mouse wheel scroll: zoom in/outUp
/Down
: go to previous/next entry<
/>
buttons in the bottom bar: go to previous/next entryCtrl
+ mouse wheel scroll: go to previous/next sampleCtrl
+ Up
/Down
: go to previous/next sample<<
/>>
buttons in the bottom bar: go to previous/next sampleCtrl
+ G
or entry number button in the bottom bar: show Go to entry...
dialogJ
or Add tag
button in the entry title bar: Start editing the entry's tagK
or Star
button in the entry title bar: Toggle the entry's Starred
statusL
or Done
button in the entry title bar: Toggle the entry's Done
statusYou can change settings in Settings
-> Prefereneces
-> Editor
-> Notes
to hide the items that
you don't need.
You can change settings in Settings
-> Prefereneces
-> Editor
-> Post-editing actions
to automatically execute
the following actions after editing entries:
Done
(enabled by default)F1
~F8
: launch the corresponding batch edit plugin. Need to be configured in
Tools
-> Batch Edit
-> Slot Settings...
before use. About plugins, see Plugins for more details.For labelers in continuous mode (example), you can switch between the single entry editing mode and a multi-entry editing mode which shows and allows you to edit all the connected entries in the same sample file.
It's enabled by default. You can click the Single/Mutiple
button in the center of the bottom bar to enable or disable
it.
In the multi-entry editing mode, names of the entries are displayed at the top of the editor. By clicking the names, the following actions are conducted:
You can install ffmpeg
to support more audio formats. You can download it from
the official website.
You need to then configure the path to the ffmpeg
executable
in Settings
-> Prefereneces
-> Charts
-> Audio Format Support
.
For macOS/Linux, you can install ffmpeg
into bin
or your system path, so the default path ffmpeg
works.
You can attach a video to the sample file with the same name and duration, and watch the video while you're editing. For example:
(sample folder)
- 1.wav
- 1.mp4
- 2.wav
- 2.webm
You need to install VLC to use this feature. You can download it from here.
Note that even on an Apple Silicon mac, you will need a macOS
version instead of a macOS (AppleSilicon)
version if
you are using the application downloaded from Release
page of this repository.
Use shortcut Ctrl
+ V
or Ctrl
+ Shift
+ V
to open the attached video in the left-bottom corner or in a new
window.
The video will be played silently along with the sample file.
There are two components showing an entry list:
View
-> Pin Entry List
. It provides a full powered entry filter (described below).Go to entry...
dialog: shown when you press Ctrl
+ G
or click the entry number button in the bottom bar.
It provides a simple entry filter.In both types of entry list, you can use the following syntax to search entries:
aaa;name:bbb;sample:ccc;tag:ddd
Multiple conditions can be combined with ;
. Only entries that match all the conditions are shown.
The following condition keys (the part left to :
) are supported:
name
: search in the entry namesample
: search in the sample name (without extension)tag
: search in the tagThe match type for this search is contains
.
In the pinned entry list, you can click the Expand
button to show more options.
For the Done
filter and Star
filter, clicking will switch them between Do not filter
, Show only starred/done
and Show only unstarred/undone
.
You can click the More
button to open a dialog for setting conditions separately.
All these filters are combined with AND
logic.
By default, project navigation (go to next sample/entry etc. by keyboard shortcuts, mouse wheel scroll or button click) is not affected by the filter.
For example, even if you have filtered out entry no.5
in the entry list, you can still press Down
key to go to the
entry no.5
from entry no.4
.
The Link
button in the expanded filter can help you concentrate on a specific set of entries. When it's toggled, the
entries that are not shown in the pinned entry list will be skipped when navigating.
In the above example, if you have toggled the Link
button, you will go to entry no.6
when pressing Down
key
instead ofno.5
.
Note that the Go to entry...
dialog is not affected by the linked filter, so you can still go to any entry by it
without changing or clearing your filter settings in the pinned entry list.
The following editing tool is provided.
You can use shortcuts or menu items under Edit
-> Tools
to switch tools, or toggle the toolbox by menu View
-> Show Toolbox
.
The normal cursor tool to drag parameter controllers.
Cut the entry into two parts by your click position. This is typically used in the Multi-entry editing mode to create new labels.
By default, when you click on a valid position with the scissors:
Enter
to confirm the input, or press Esc
to cancelIn single-entry editing mode, the name input is requested in a dialog instead of in the editor.
These actions can be customized in Prefereneces
-> Editor
-> Scissors
.
Or the hand tool. Drag on the editor to scroll the canvas.
Use mouse click or drag to play a certain range of the current sample file.
The following actions are available as default. You can change the key bindings
in Settings
-> Prefereneces
-> Keymaps
-> Mouse click actions
.
Shift
+ left click: play the audio from the start of the file until the clicked positionShift
+ right click: play the audio from the start of the screen until the clicked positionCtrl
+ left click & drag: play the audio in the dragged rangeCtrl
+ Shift
+ left click & drag: play the audio in the dragged range repeatedlyA "labeler" is a configuration file for vLabeler
which defines the behavior of a certain type of voice generation
software.
For example, the built-in UTAU oto labeler
is a labeler for editing UTAU's oto.ini
files.
A labeler defines:
fixed
, preutterance
, overlap
, etc.)vLabeler
projectvLabeler
projectvLabeler
projectA labeler may also support some configurable fields via GUI, without changing the labeler's file itself.
You can find the settings in the Settings
icon next to the labeler selector in the New Project
page.
If you want to edit the labels for a voice generation software that is not supported by vLabeler
,
instead of requesting development supporting that software, you can create a labeler to make it work. (it requires
some knowledge of the coding though).
Please check Develop Custom Labelers for details about labeler development.
You can import your own labelers in Settings
-> Labelers...
.
You can also distribute the labelers created by yourself to other users, or contact us for making them built-in.
Currently, two types of plugins are available.
A template generator can help generate project templates from input files and parameters.
Compared to a default template generated by the labeler which is literally minimum to include all the sample files given, a template generator plugin can create complicated templates. It's also more customizable with user input parameters.
All valid template generators which support the selected labeler can be chosen on the New Project
page.
You can import/delete/disable template generators in Settings
-> Template Generators...
.
Batch edit plugins can be used to conduct complicated batch editing tasks.
You can find available batch edit plugins in Tools
-> Batch Edit
. Some displayed plugins may not be clickable, if
it is not supported by the current labeler.
You can import/delete/disable batch edit plugins in Tools
-> Batch Edit
-> Manage plugins...
.
We welcome plugin development for the application. You can distribute your plugin anywhere, or create a pull request to make it built-in.
See Develop Plugins for vLabeler for details.
You can find the logs by clicking Help
-> Open Log Directory
, for development/debug/test purposes.
When reporting issues to us, please attach the recent log files.
Please check App Usage Tracking for details.
Scroll Canvas to Left/Right
actions in Keymap
-> Mouse scroll actions
cannot be changed at present.
If you are using a trackpad, we recommend you to disable the Go to Next/Previous Entry
actions in the same page, so
that you can scroll the canvas by trackpad without triggering the entry navigation actions.Tools
-> Recycle Memory
to force it to recycle memory.SKIKO_RENDER_API
to
SOFTWARE
.Settings
-> Preferences
-> Miscellaneous
. Please note that the custom file dialog may not be as
powerful as the system file dialog.