Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion OpenUtau.Core/Api/Phonemizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,19 @@
public string Tag { get; private set; }
public string Author { get; private set; }
public string Language { get; private set; }
public string Engine { get; private set; }

/// <param name="name">Name of phonemizer. Required.</param>
/// <param name="tag">Use IETF language code + phonetic type as tag, e.g., "EN ARPA", "JA VCV", etc. Required.</param>
/// <param name="author">Author of this phonemizer.</param>
/// <param name="language">IETF language code of this phonemizer's singing language, e.g., "EN", "JA"</param>
public PhonemizerAttribute(string name, string tag, string author = null, string language = null) {
/// <param name="engine">Engine of the phonemizer to categorize them.</param>
public PhonemizerAttribute(string name, string tag, string author = null, string language = null, string engine = null) {

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (windows-latest, win-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (windows-latest, win-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (windows-latest, win-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (ubuntu-latest, linux-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (ubuntu-latest, linux-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (ubuntu-latest, linux-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (macos-latest, osx-arm64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (macos-latest, osx-arm64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (macos-latest, osx-arm64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (macos-15-intel, osx-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (macos-15-intel, osx-x64)

Cannot convert null literal to non-nullable reference type.

Check warning on line 24 in OpenUtau.Core/Api/Phonemizer.cs

View workflow job for this annotation

GitHub Actions / pr-test (macos-15-intel, osx-x64)

Cannot convert null literal to non-nullable reference type.
Name = name;
Tag = tag;
Author = author;
Language = language;
Engine = engine;
}
}

Expand Down Expand Up @@ -152,6 +155,7 @@
public string Name { get; set; }
public string Tag { get; set; }
public string Language { get; set; }
public string Engine { get; set; }
internal Exception? SetUpException { get; set; }

protected double bpm;
Expand Down
3 changes: 3 additions & 0 deletions OpenUtau.Core/Api/PhonemizerFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ public class PhonemizerFactory {
public string tag;
public string author;
public string language;
public string engine;

public Phonemizer Create() {
var phonemizer = Activator.CreateInstance(type) as Phonemizer;
phonemizer.Name = name;
phonemizer.Tag = tag;
phonemizer.Language = language;
phonemizer.Engine = engine;
return phonemizer;
}

Expand All @@ -37,6 +39,7 @@ public static PhonemizerFactory Get(Type type) {
tag = attr.Tag,
author = attr.Author,
language = attr.Language,
engine = attr.Engine,
};
factories[type] = factory;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
using Serilog;

namespace OpenUtau.Core.DiffSinger {
[Phonemizer("DiffSinger English+ Phonemizer", "DIFFS EN+", language: "EN", author: "Cadlaxa")]
[Phonemizer("DiffSinger English+ Phonemizer", "DIFFS EN+", language: "EN", author: "Cadlaxa", engine: "Diffsinger")]
public class DiffSingerARPAPlusEnglishPhonemizer : DiffSingerG2pPhonemizer
// cadlaxa here, this diffsinger english phonemizer just uses the ARPA+ G2p so arpasing+ and this phonemizer
// have same g2p mechanics such as triggering of glottal stop with ('), manual relaxed consonants
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using OpenUtau.Api;

namespace OpenUtau.Core.DiffSinger {
[Phonemizer("DiffSinger Chinese Phonemizer", "DIFFS ZH", language: "ZH")]
[Phonemizer("DiffSinger Chinese Phonemizer", "DIFFS ZH", language: "ZH", engine: "Diffsinger")]
public class DiffSingerChinesePhonemizer : DiffSingerBasePhonemizer {
protected override string GetDictionaryName()=>"dsdict-zh.yaml";
public override string GetLangCode()=>"zh";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger English Phonemizer", "DIFFS EN", language: "EN")]
[Phonemizer("DiffSinger English Phonemizer", "DIFFS EN", language: "EN", engine: "Diffsinger")]
public class DiffSingerEnglishPhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=>"dsdict-en.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Filipino Phonemizer", "DIFFS FIL", language: "FIL", author: "julieraptor")]
[Phonemizer("DiffSinger Filipino Phonemizer", "DIFFS FIL", language: "FIL", author: "julieraptor", engine: "Diffsinger")]
public class DiffSingerFilipinoPhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=>"dsdict-fil.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger French Millefeuille Phonemizer", "DIFFS FR MILLE", language: "FR")]
[Phonemizer("DiffSinger French Millefeuille Phonemizer", "DIFFS FR MILLE", language: "FR", engine: "Diffsinger")]
public class DiffSingerFrenchMillfeuillePhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=> "dsdict-fr-millefeuille.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger German Marzipan Phonemizer", "DIFFS DE MARZ", language: "DE")]
[Phonemizer("DiffSinger German Marzipan Phonemizer", "DIFFS DE MARZ", language: "DE", engine: "Diffsinger")]
public class DiDiffSingerGermanMarzipanPhonemizerr : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=> "dsdict-de-marzipan.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger German Phonemizer", "DIFFS DE", language: "DE")]
[Phonemizer("DiffSinger German Phonemizer", "DIFFS DE", language: "DE", engine: "Diffsinger")]
public class DiffSingerGermanPhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=>"dsdict-de.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using OpenUtau.Core.G2p;

namespace OpenUtau.Core.DiffSinger {
[Phonemizer("DiffSinger Italian Phonemizer", "DIFFS IT", language: "IT")]
[Phonemizer("DiffSinger Italian Phonemizer", "DIFFS IT", language: "IT", engine: "Diffsinger")]
public class DiffSingerItalianPhonemizer : DiffSingerG2pPhonemizer {
protected override string GetDictionaryName() => "dsdict-it.yaml";
public override string GetLangCode()=>"it";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using OpenUtau.Api;

namespace OpenUtau.Core.DiffSinger {
[Phonemizer("DiffSinger Japanese Phonemizer", "DIFFS JA", language: "JA")]
[Phonemizer("DiffSinger Japanese Phonemizer", "DIFFS JA", language: "JA", engine: "Diffsinger")]
public class DiffSingerJapanesePhonemizer : DiffSingerBasePhonemizer {
protected override string GetDictionaryName() => "dsdict-ja.yaml";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using Pinyin;

namespace OpenUtau.Core.DiffSinger {
[Phonemizer("DiffSinger Jyutping Phonemizer", "DIFFS ZH-YUE", language: "ZH-YUE")]
[Phonemizer("DiffSinger Jyutping Phonemizer", "DIFFS ZH-YUE", language: "ZH-YUE", engine: "Diffsinger")]
public class DiffSingerJyutpingPhonemizer : DiffSingerBasePhonemizer {
protected override string GetDictionaryName() => "dsdict-zh-yue.yaml";
public override string GetLangCode() => "yue";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Korean G2P Phonemizer", "DIFFS KO", language: "KO", author: "Cardroid6")]
[Phonemizer("DiffSinger Korean G2P Phonemizer", "DIFFS KO", language: "KO", author: "Cardroid6", engine: "Diffsinger")]
public class DiffSingerKoreanG2PPhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName() => "dsdict-ko.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Korean Phonemizer", "DIFFS KO","EX3", language:"KO")]
[Phonemizer("DiffSinger Korean Phonemizer", "DIFFS KO","EX3", language:"KO", engine: "Diffsinger")]
public class DiffSingerKoreanPhonemizer : DiffSingerBasePhonemizer
{
protected override string GetDictionaryName()=>"dsdict-ko.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Phonemizer", "DIFFS")]
[Phonemizer("DiffSinger Phonemizer", "DIFFS", engine: "Diffsinger")]
public class DiffSingerPhonemizer : DiffSingerBasePhonemizer
{
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Portuguese Phonemizer", "DIFFS PT", language: "PT")]
[Phonemizer("DiffSinger Portuguese Phonemizer", "DIFFS PT", language: "PT", engine: "Diffsinger")]
public class DiffSingerPortuguesePhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=>"dsdict-pt.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public DsRhythmizer(string path) {
}
}

[Phonemizer("DiffSinger Rhythmizer Phonemizer", "DIFFS RHY", language: "ZH")]
[Phonemizer("DiffSinger Rhythmizer Phonemizer", "DIFFS RHY", language: "ZH", engine: "Diffsinger")]
public class DiffSingerRhythmizerPhonemizer : MachineLearningPhonemizer {
USinger singer;
DsRhythmizer rhythmizer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ public string[] Query(string grapheme) {
}

namespace OpenUtau.Core.DiffSinger {
[Phonemizer("DiffSinger Rule-based Filipino Phonemizer", "DIFFS FIL", "UtaUtaUtau", "FIL")]
[Phonemizer("DiffSinger Rule-based Filipino Phonemizer", "DIFFS FIL", "UtaUtaUtau", "FIL", engine: "Diffsinger")]
public class DiffSingerRuleBasedFilipinoPhonemizer : DiffSingerG2pPhonemizer {
protected override string GetDictionaryName() => "dsdict-fil.yaml";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Russian Phonemizer", "DIFFS RU", language: "RU")]
[Phonemizer("DiffSinger Russian Phonemizer", "DIFFS RU", language: "RU", engine: "Diffsinger")]
public class DiffSingerRussianPhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=>"dsdict-ru.yaml";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace OpenUtau.Core.DiffSinger
{
[Phonemizer("DiffSinger Spanish Phonemizer", "DIFFS ES", language: "ES")]
[Phonemizer("DiffSinger Spanish Phonemizer", "DIFFS ES", language: "ES", engine: "Diffsinger")]
public class DiffSingerSpanishPhonemizer : DiffSingerG2pPhonemizer
{
protected override string GetDictionaryName()=>"dsdict-es.yaml";
Expand Down
2 changes: 1 addition & 1 deletion OpenUtau.Core/Vogen/VogenMandarinPhonemizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using OpenUtau.Api;

namespace OpenUtau.Core.Vogen {
[Phonemizer("Vogen Chinese Mandarin Phonemizer", "VOGEN ZH", language: "ZH")]
[Phonemizer("Vogen Chinese Mandarin Phonemizer", "VOGEN ZH", language: "ZH", engine: "Vogen")]
public class VogenMandarinPhonemizer : VogenBasePhonemizer {
private static InferenceSession? g2p;
private static InferenceSession? prosody;
Expand Down
2 changes: 1 addition & 1 deletion OpenUtau.Core/Vogen/VogenYuePhonemizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System;

namespace OpenUtau.Core.Vogen {
[Phonemizer("Vogen Chinese Yue Phonemizer", "VOGEN ZH-YUE", language: "ZH-YUE")]
[Phonemizer("Vogen Chinese Yue Phonemizer", "VOGEN ZH-YUE", language: "ZH-YUE", engine: "Vogen")]
public class VogenYuePhonemizer : VogenBasePhonemizer {
private static TrieNode? trie;
private static InferenceSession? g2p;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using OpenUtau.Core.Voicevox;

namespace Voicevox {
[Phonemizer("Simple Voicevox Japanese Phonemizer", "S-VOICEVOX JA", language: "JA")]
[Phonemizer("Simple Voicevox Japanese Phonemizer", "S-VOICEVOX JA", language: "JA", engine: "Voicevox")]
public class SimpleVoicevoxPhonemizer : Phonemizer {

protected VoicevoxSinger singer;
Expand Down
2 changes: 1 addition & 1 deletion OpenUtau.Core/Voicevox/Phonemizers/VoicevoxPhonemizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
using OpenUtau.Core.Ustx;

namespace OpenUtau.Core.Voicevox {
[Phonemizer("Voicevox Japanese Phonemizer", "VOICEVOX JA", language: "JA")]
[Phonemizer("Voicevox Japanese Phonemizer", "VOICEVOX JA", language: "JA", engine: "Voicevox")]
public class VoicevoxPhonemizer : Phonemizer {

protected VoicevoxSinger singer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
using Serilog;

namespace OpenUtau.Plugin.Builtin {
[Phonemizer("Enunu Onnx English Phonemizer", "ENUNU X EN", language:"EN")]
[Phonemizer("Enunu Onnx English Phonemizer", "ENUNU X EN", language:"EN", engine: "Enunu")]
public class EnunuOnnxEnglishPhonemizer : EnunuOnnxPhonemizer {
protected override IG2p LoadG2p(string rootPath) {
var g2ps = new List<IG2p>();
Expand Down
2 changes: 1 addition & 1 deletion OpenUtau.Plugin.Builtin/EnunuOnnx/EnunuOnnxPhonemizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
//This phonemizer uses onnxruntime to run ML models. No Python needed.

namespace OpenUtau.Plugin.Builtin {
[Phonemizer("Enunu Onnx Phonemizer", "ENUNU X")]
[Phonemizer("Enunu Onnx Phonemizer", "ENUNU X", engine: "Enunu")]
public class EnunuOnnxPhonemizer : Phonemizer {
readonly string PhonemizerType = "ENUNU X";

Expand Down
2 changes: 2 additions & 0 deletions OpenUtau/Strings/Strings.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@ OpenUtau aims to be an open source editing environment for UTAU community, with
<system:String x:Key="dialogs.installdependency.caption">Installing dependency</system:String>
<system:String x:Key="dialogs.installdependency.message">Installing </system:String>
<system:String x:Key="dialogs.installdll.caption">Installing phonemizer</system:String>
<system:String x:Key="warning.enginemismatch.title">Phonemizer Mismatched</system:String>
<system:String x:Key="warning.enginemismatch.msg">The singer type ({0}) does not match the phonemizer type ({1}). This may result in missing phonemes or errors. Do you want to use this phonemizer anyway?</system:String>
<system:String x:Key="dialogs.installdll.message">Installing </system:String>
<system:String x:Key="dialogs.merge.caption">Merging Parts</system:String>
<system:String x:Key="dialogs.merge.multitracks">Parts on different tracks cannot be merged.</system:String>
Expand Down
Loading
Loading