c#从谷歌翻译下载文本到语音有问题

本文关键字:语音 有问题 文本 下载 谷歌 翻译 | 更新日期: 2023-09-27 18:11:06

我正在尝试下载由google translate和生成的mp3文件,尽管要实现此,翻译不像预期的那样。

我是葡萄牙人,我们使用很多特殊字符,我认为这就是问题所在…

string text = "Teste de criação no ficheiro";
            string googleTextToSpeech = "http://translate.google.com/translate_tts?tl=pt&q=";
            string url = googleTextToSpeech + HttpUtility.UrlEncode(text);
            string url2 = googleTextToSpeech + text;
using (WebClient myWebClient = new WebClient())
            {
                myWebClient.DownloadFile(url, pathToSaveFile + "''" + "mp3CriationTest.mp3");
                myWebClient.DownloadFile(url2, pathToSaveFile + "''" + "mp3CriationTest2.mp3");
            }

文件实际上是创建的,但在这两种情况下,声音说的是同样的事情:直到"Teste de cria"(在"ç"answers"~"之前)ok,"no ficheiro"ok。中间的声音说了一些不太明确的话……Hope I是明确的。=)

正如你所看到的,我尝试了和没有UrlEncode和相同的结果…我也试过UrlEncode all url。我用BinaryWriter试一下,问题是一样的。我试着在myWebClient.DownloadFile中通过new Uri(url),没有任何变化。

最让我恼火的是,如果你把url结果放在浏览器中,你可以听正确的文本到语音。试试:http://translate.google.com/translate_tts?tl=pt&q=Teste de cria o no ficheiro

"Teste de cria o no ficheiro"代表"文件创建测试"

c#从谷歌翻译下载文本到语音有问题

下面的内容对我来说很好:

using System.Net;
using System.Text;
using System.Web;
class Program
{
    static void Main()
    {
        var text = "Teste de criação no ficheiro";
        var url = "http://translate.google.com/translate_tts?tl=pt&q=";
        url += HttpUtility.UrlEncode(text, Encoding.GetEncoding("utf-8"));
        using (var client = new WebClient())
        {
            client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1";
            client.DownloadFile(url, "mp3CriationTest.mp3");
        }
    }
}