Example #1
0
        public async Task TtsAvailableTest(string text, string language, bool slow)
        {
            // Act
            var results = await GoogleTTS.GetTtsAsync(text, language, slow);

            // Assert
            Assert.NotEmpty(results);
        }
        private static void Main(string[] args)
        {
            while (true)
            {
                WriteLine("Type in english:");
                var text = ReadLine();

                GoogleTTS.Play(text, Language.English);

                WriteLine("Escreva em português:");
                text = ReadLine();

                GoogleTTS.Play(text, Language.BrazilianPortuguese);
            }
        }
Example #3
0
        public IHttpActionResult GetVoice(string text, bool cache = true)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(BadRequest("text"));
            }
            else if (text.Length > 200)
            {
                return(BadRequest("text length > 200 characters"));
            }
            if (cache)
            {
                var md5           = text.GetMD5Hash();
                var prefixHash    = md5.Substring(0, WebServer.VoiceCacheHashPrefixLength);
                var folderName    = Path.Combine("Cache", prefixHash);
                var cacheFileName = Path.Combine(folderName, md5 + ".mp3");
                if (File.Exists(cacheFileName))
                {
                    logger.Info("Get voice from cache: {0} -> {1}", text, cacheFileName);
                    return(new FileResult(cacheFileName, "audio/mpeg"));
                }

                var mp3 = GoogleTTS.Request(text, Languague.Vietnamese);

                Directory.CreateDirectory(folderName);
                using (var file = File.OpenWrite(cacheFileName))
                    using (var stream = new MemoryStream(mp3))
                    {
                        stream.CopyTo(file);
                        file.Flush();
                        file.Close();
                        File.WriteAllText(Path.Combine("Cache", prefixHash, md5 + ".txt"), text);
                    }
                return(new ByteArrayResult(mp3, "audio/mpeg"));
            }
            else
            {
                logger.Info("Get voice without cache: {0}", text);
                var mp3 = GoogleTTS.Request(text, Languague.Vietnamese);
                return(new ByteArrayResult(mp3, "audio/mpeg"));
            }
        }
Example #4
0
 private void Falar(string mensagem)
 {
     if (chkFalar.Checked)
     {
         string mensagemLimpa = string.Empty;
         string intro         = string.Empty;
         string corpoMensagem = string.Empty;
         if (mensagem.Contains("-"))
         {
             string[] mensagens = mensagem.Split('-');
             mensagens[0]  = string.Empty;
             mensagemLimpa = String.Join("-", mensagens);
             string[] partesMensagemLimpa = mensagemLimpa.Split(':');
             intro = partesMensagemLimpa[0];
             partesMensagemLimpa[0] = string.Empty;
             corpoMensagem          = string.Join(":", partesMensagemLimpa);
         }
         GoogleTTS.Play($"{intro} {corpoMensagem}", Language.BrazilianPortuguese);
     }
 }
Example #5
0
 public async Task TtsInvalidArgumentTest(string text, string language)
 {
     // Act and Assert
     await Assert.ThrowsAsync <ArgumentNullException>(async() => await GoogleTTS.GetTtsAsync(text, language));
 }