public static ApiWord.Types.Pronunciation Create(string displayName, string yngping, AudioClip?audioClip = null) { var word = new ApiWord.Types.Pronunciation { DisplayName = displayName, Pronunciation_ = yngping, }; if (audioClip != null) { word.Audio = AudioResources.WithAudioClip(audioClip.BlobLocation); return(word); } if (YngpingTtsUtil.IsPronounceable(yngping)) { word.Audio = AudioResources.WithTtsUrls(yngping); } return(word); }
public override Task <GenerateSandhiResponse> GenerateSandhi(GenerateSandhiRequest request, ServerCallContext context) { var results = new List <GenerateSandhiResponse.Types.SandhiResult>(); foreach (var input in request.Inputs) { try { var inputSyllables = input.ToLowerInvariant().Trim() .Split() .Select(syllable => syllable.Trim()) .Where(syllable => syllable.Length > 0) .ToArray(); var outputSyllables = SandhiGenerator.GenerateSandhiSyllables(inputSyllables); var output = string.Join(" ", outputSyllables); var result = new GenerateSandhiResponse.Types.SandhiResult { Output = output }; if (YngpingTtsUtil.IsPronounceable(output)) { result.AudioUrl = "https://api.ydict.net/tts/" + Uri.EscapeDataString(output); } ; results.Add(result); } catch (Exception) { results.Add(new GenerateSandhiResponse.Types.SandhiResult { HasError = true }); } } return(Task.FromResult(new GenerateSandhiResponse { Results = { results } })); }
public void TestIsPronounceable_True(string yngping) { Assert.True(YngpingTtsUtil.IsPronounceable(yngping)); }
public void TestSyllableToAudio_UnsupportedSyllable_ReturnsEmpty(string yngping) { Assert.Equal(string.Empty, YngpingTtsUtil.SyllableToAudio(yngping)); }
public void TestSyllableToAudio(string yngping, string expectedFileName) { Assert.Equal(expectedFileName, YngpingTtsUtil.SyllableToAudio(yngping)); }