Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 

Repository files navigation

UTAUME

UTAU Multilingual Engine

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.


✨ Features

  • πŸ‡―πŸ‡΅ Japanese voicebank support
  • πŸ‡ΊπŸ‡Έ English voicebank support
  • πŸ‡¨πŸ‡³ Chinese voicebank support
  • πŸ”€ Format-aware alias conversion
  • πŸ“¦ .utaumedt voicebank packages
  • βš™οΈ UTAUME.txt voicebank configuration
  • πŸ› οΈ Python-based voicebank builder
  • πŸŽ›οΈ OpenUtau integration
  • πŸ“š Extensible .type format definitions
  • πŸ’Ύ Shift-JIS / CP932 OTO support

🎀 Supported Voicebank Formats

UTAUME currently supports the following formats.

πŸ‡―πŸ‡΅ Japanese

JP-CV
JP-VCV
JP-CVVC

πŸ‡ΊπŸ‡Έ English

EN-ARPA
EN-ARPA+
EN-C+V
EN-VCCV
EN-X-SAMPA

πŸ‡¨πŸ‡³ Chinese

ZH-CVV

Only the formats listed above are officially supported at this time.

More languages and formats may be added in future versions.


🧩 How UTAUME Works

A UTAUME-compatible voicebank contains a configuration file called:

UTAUME.txt

Example:

jp=JP-CV
en=EN-ARPA
zh=ZH-CVV

This 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.


πŸ“ Project Structure

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 Voicebanks

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
└── ...

🏷️ Voicebank Naming

UTAUME-compatible voicebanks may use a special designation.

For English, the designation is:

Plus

For Japanese and Chinese, the designation is:

+

Examples

English:

Kasane Teto Plus

Japanese:

ι‡ιŸ³γƒ†γƒˆ+

Chinese:

ι‡ιŸ³γƒ†γƒˆ+

The designation indicates that the voicebank includes UTAUME compatibility.


πŸ› οΈ Creating a UTAUME Voicebank

You can create a UTAUME-compatible voicebank using the UTAUME Creator:

https://utaume.github.io/create

The creator accepts an existing UTAU voicebank ZIP.

Process

  1. Upload your existing UTAU voicebank ZIP.
  2. Do not include UTAUME.txt in the uploaded ZIP.
  3. Enter the required voicebank information.
  4. Select the supported languages.
  5. Select the appropriate voicebank formats.
  6. 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.


πŸ“₯ Installing a UTAUME Voicebank

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.


πŸ”§ UTAUME Builder

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 .utaumedt package

Example output:

Multilingual/
β”œβ”€β”€ *-JP.wav
β”œβ”€β”€ *-EN.wav
β”œβ”€β”€ *-ZH.wav
β”œβ”€β”€ oto.ini
└── UTAUME.txt

πŸŽ›οΈ OpenUtau Plugin

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.


πŸ“š Format Definitions

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.


πŸ§ͺ Development

UTAUME is currently under development.

The project is divided into several major components:

Builder

Responsible for preparing and packaging voicebanks.

Core

Responsible for parsing configurations, mapping aliases, and handling voicebank information.

Plugin

Responsible for OpenUtau integration and note conversion.

Types

Contains definitions for supported voicebank formats.

Tests

Contains automated tests for the Builder, OTO processing, encoding, mappings, and format definitions.


🀝 Contributing

Contributions are welcome!

You can contribute by:

  • Adding support for new voicebank formats
  • Improving existing .type definitions
  • 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.


πŸ“œ License

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.


πŸš€ Project Status

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.


UTAUME

UTAU Multilingual Engine

One voicebank. Multiple languages. One engine.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors