diff --git a/KokoroSharp/Processing/Tokenizer.cs b/KokoroSharp/Processing/Tokenizer.cs index 45f7009..2f75ad6 100644 --- a/KokoroSharp/Processing/Tokenizer.cs +++ b/KokoroSharp/Processing/Tokenizer.cs @@ -62,16 +62,21 @@ public static string Phonemize_Internal(string text, out string originalSegments StartInfo = new ProcessStartInfo() { FileName = CrossPlatformHelper.GetEspeakBinariesPath(), WorkingDirectory = null, - Arguments = $"--ipa=3 -q -v {langCode} \"{text}\"", - RedirectStandardInput = false, + Arguments = $"--ipa=3 -b 1 -q -v {langCode} --stdin", + RedirectStandardInput = true, RedirectStandardOutput = true, CreateNoWindow = true, UseShellExecute = false, + StandardInputEncoding = Encoding.UTF8, StandardOutputEncoding = Encoding.UTF8 } }; process.StartInfo.EnvironmentVariables.Add("ESPEAK_DATA_PATH", @$"{eSpeakNGPath}/espeak-ng-data"); process.Start(); + Task.Run(async () => { + await process.StandardInput.WriteLineAsync(text); + process.StandardInput.Close(); + }); originalSegments = process.StandardOutput.ReadToEnd(); Debug.WriteLine($"org:\n{originalSegments}---"); process.StandardOutput.Close();