UTAUME is a project designed to make UTAU and OpenUtau voicebanks easier to use across multiple languages.
A UTAUME-compatible voicebank can contain Japanese, English, and Chinese voice data in the same voicebank while using a format-aware system to convert user input into the correct UTAU aliases.
One voicebank. Multiple languages. One engine.
- π―π΅ Japanese voicebank support
- πΊπΈ English voicebank support
- π¨π³ Chinese voicebank support
- π€ Format-aware alias conversion
- π¦
.utaumedtvoicebank packages - βοΈ
UTAUME.txtvoicebank configuration - π οΈ Python-based voicebank builder
- ποΈ OpenUtau integration
- π Extensible
.typeformat definitions - πΎ Shift-JIS / CP932 OTO support
UTAUME currently supports the following formats.
JP-CV
JP-VCV
JP-CVVC
EN-ARPA
EN-ARPA+
EN-C+V
EN-VCCV
EN-X-SAMPA
ZH-CVV
Only the formats listed above are officially supported at this time.
More languages and formats may be added in future versions.
A UTAUME-compatible voicebank contains a configuration file called:
UTAUME.txt
Example:
jp=JP-CV
en=EN-ARPA
zh=ZH-CVVThis tells UTAUME which format is used for each language.
The corresponding format definition is loaded from the types/ directory:
UTAUME.txt
β
βββ jp=JP-CV
β β
β types/JP-CV.type
β
βββ en=EN-ARPA
β β
β types/EN-ARPA.type
β
βββ zh=ZH-CVV
β
types/ZH-CVV.type
This design allows new voicebank formats to be added without rewriting the entire UTAUME engine.
UTAUME/
β
βββ builder/
β βββ main.py
β βββ oto.py
β βββ wav.py
β βββ encoding.py
β
βββ plugin/
β βββ ...
β
βββ core/
β βββ parser/
β βββ mapper/
β βββ voicebank/
β
βββ types/
β βββ JP-CV.type
β βββ JP-VCV.type
β βββ JP-CVVC.type
β βββ EN-ARPA.type
β βββ EN-ARPA+.type
β βββ EN-C+V.type
β βββ EN-VCCV.type
β βββ EN-X-SAMPA.type
β βββ ZH-CVV.type
β
βββ tests/
βββ examples/
βββ docs/
βββ README.md
βββ LICENSE
βββ CONTRIBUTING.md
UTAUME-compatible voicebanks are distributed using the .utaumedt file extension.
A .utaumedt package is a ZIP-compatible voicebank package containing the normal UTAU voicebank files plus UTAUME compatibility information.
A typical package may contain:
MyVoicebank.utaumedt
β
βββ character.txt
βββ oto.ini
βββ UTAUME.txt
βββ icon.bmp
βββ readme.txt
β
βββ *.wav
βββ *.wav
βββ ...
UTAUME-compatible voicebanks may use a special designation.
For English, the designation is:
Plus
For Japanese and Chinese, the designation is:
+
English:
Kasane Teto Plus
Japanese:
ιι³γγ+
Chinese:
ιι³γγ+
The designation indicates that the voicebank includes UTAUME compatibility.
You can create a UTAUME-compatible voicebank using the UTAUME Creator:
https://utaume.github.io/create
The creator accepts an existing UTAU voicebank ZIP.
- Upload your existing UTAU voicebank ZIP.
- Do not include
UTAUME.txtin the uploaded ZIP. - Enter the required voicebank information.
- Select the supported languages.
- Select the appropriate voicebank formats.
- Generate the UTAUME package.
The creator will generate:
VoicebankName.utaumedt
and:
utaumeinstaller.py
The generated package contains the original voicebank together with the required UTAUME compatibility configuration.
A UTAUME voicebank can be distributed as:
VoicebankName.utaumedt
The package can be installed using:
utaumeinstaller.py
The installer extracts the voicebank and places the required files in the appropriate voicebank directory.
The UTAUME Builder is a Python tool for combining multiple language voicebanks into a single multilingual voicebank.
For example:
Japanese Voicebank
+
English Voicebank
+
Chinese Voicebank
β
UTAUME Builder
β
Multilingual Voicebank
The Builder can:
- Copy WAV files
- Rename WAV files with language suffixes
- Process
oto.ini - Merge multiple OTO files
- Handle Shift-JIS / CP932
- Generate
UTAUME.txt - Create a
.utaumedtpackage
Example output:
Multilingual/
βββ *-JP.wav
βββ *-EN.wav
βββ *-ZH.wav
βββ oto.ini
βββ UTAUME.txt
UTAUME is designed to integrate with OpenUtau.
The UTAUME Plugin allows users to select notes and convert their input into the appropriate aliases for the selected voicebank.
Conceptually:
User input
β
Selected notes
β
UTAUME Plugin
β
Read UTAUME.txt
β
Load corresponding .type definition
β
Convert input
β
Find matching OTO alias
β
Modify the selected notes
β
OpenUtau
Example:
Input:
ne
β
JP-CV conversion
β
γ
β
Matching OTO entry
The exact OpenUtau API and plugin implementation may evolve as development progresses.
Voicebank formats are stored as .type files inside:
types/
Current format definitions:
JP-CV.type
JP-VCV.type
JP-CVVC.type
EN-ARPA.type
EN-ARPA+.type
EN-C+V.type
EN-VCCV.type
EN-X-SAMPA.type
ZH-CVV.type
These files describe the phoneme and alias rules required by each supported voicebank format.
Adding a new format should ideally require creating a new .type definition instead of modifying the UTAUME core.
UTAUME is currently under development.
The project is divided into several major components:
Responsible for preparing and packaging voicebanks.
Responsible for parsing configurations, mapping aliases, and handling voicebank information.
Responsible for OpenUtau integration and note conversion.
Contains definitions for supported voicebank formats.
Contains automated tests for the Builder, OTO processing, encoding, mappings, and format definitions.
Contributions are welcome!
You can contribute by:
- Adding support for new voicebank formats
- Improving existing
.typedefinitions - Fixing bugs
- Improving the Builder
- Developing the OpenUtau plugin
- Improving documentation
- Creating test cases
- Reporting compatibility issues
Before adding a new format, please make sure it is clearly documented and tested with a real voicebank.
UTAUME uses the UTAUME Custom License.
The UTAUME software may be used for personal and commercial purposes, but the software itself may not be modified, redistributed, resold, sublicensed, or used to create derivative versions without permission.
UTAUME artwork, logos, characters, and other visual assets are separately protected and may not be reused or incorporated into unrelated projects without permission.
See LICENSE for the complete terms.
UTAUME is currently in early development.
The architecture, file formats, plugin API, and .utaumedt package specification may change before the first stable release.
The current goal is to create a simple and extensible system that allows UTAU/OpenUtau users to work with multilingual voicebanks without requiring every voicebank creator to implement their own multilingual system.
UTAU Multilingual Engine
One voicebank. Multiple languages. One engine.