【发布时间】:2011-10-13 17:18:27
【问题描述】:
我正在尝试下载由 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”(在“ç”和“~”之前)和“no ficheiro”都可以。中间的声音说了一些不太明确的话…… 希望我是明确的。 =)
如您所见,我尝试使用和不使用UrlEncode,结果相同...我也尝试使用 UrlEncode 所有 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”代表“文件创建测试”。
【问题讨论】:
-
这可能是因为 URL 中的字符编码错误。您的示例 URL 在浏览器中有效。 url 和 url2 长什么样子?
-
我认为 WebClient.DownloadFile 是英文的,并将我的特殊字符更改为英文对应的字符。我检查了我的
myWebClient.Encoding,但它带有“iso-8859-1:西欧(Windows)”正确的=( -
我不知道该怎么办了。我希望有人可以帮助我或给我一个一致且简单的选择。谢谢。
-
就像我昨天问的,url 和 url2 长什么样子?
-
@bzlm Ups,我说错了...我编辑代码没问题...
path = url和path2 = url2这是一个复制粘贴错误,因为我在不同的函数中有它
标签: c# special-characters google-text-to-speech