From 566d99acedf1d2b2eab005bf9fc341cc8aabff78 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sat, 27 Jul 2024 07:44:17 -0400 Subject: [PATCH] voice: Switch default English Piper voice to 'en_GB-semaine-medium' The former one ('cori') had some very pathological corner cases especiallly when voicing single letters. This one is just better all around. Change-Id: I275256a637cf70ba196aafdecc24038bfe841955 --- apps/lang/InvalidVoice_english.talk | Bin 2707 -> 4116 bytes tools/builds.pm | 2 +- tools/voice.pl | 18 +++++++++++------- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/apps/lang/InvalidVoice_english.talk b/apps/lang/InvalidVoice_english.talk index e40f227c33c230365c26a08b9f209e5e42f89e7f..6e54e63129ec90e629bfec4e6ff13c028bf507f7 100644 GIT binary patch literal 4116 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 NtTxT87PYJvwX9_}NGbpT diff --git a/tools/builds.pm b/tools/builds.pm index ba3fb2aad5..1b680c17fb 100644 --- a/tools/builds.pm +++ b/tools/builds.pm @@ -601,7 +601,7 @@ sub simbuilds { 'festival' => '--language english', 'espeak' => '-ven-gb -k 5', 'gtts' => '-l en -t co.uk', - 'piper' => 'en_GB-cori-high.onnx', + 'piper' => 'en_GB-semaine-medium.onnx', }, 'enabled' => 1, }, diff --git a/tools/voice.pl b/tools/voice.pl index 7a0b1edc1d..1180565b64 100755 --- a/tools/voice.pl +++ b/tools/voice.pl @@ -138,7 +138,7 @@ my %espeak_lang_map = ( ); my %piper_lang_map = ( - 'english' => 'en_GB-cori-high.onnx', # Always first, it's the golden master + 'english' => 'en_GB-semaine-medium.onnx', # Always first, it's the golden master # 'bulgarian' => '-vbg', 'chinese-simp' => 'zh_CN-huayan-medium.onnx', 'czech' => 'cs_CZ-jirka-medium.onnx', @@ -595,17 +595,21 @@ sub gentalkclips { print("."); } - # Convert to a complete path - my $path = sprintf("%s/%s", $dir, $file); - - $voice = $file; - $wav = sprintf("%s.talk.wav", $path); - # Ignore dot-dirs and talk files if ($file eq '.' || $file eq '..' || $file =~ /\.talk$/) { next; } + $voice = $file; + + # Convert some symbols to spaces + $voice =~ tr/_-/ /; + + # Convert to a complete path + my $path = sprintf("%s/%s", $dir, $file); + + $wav = sprintf("%s.talk.wav", $path); + if ( -d $path) { # Element is a dir $enc = sprintf("%s/_dirname.talk", $path); if (! -e "$path/talkclips.ignore") { # Skip directories containing "talkclips.ignore"