我正在尝试下载由谷歌翻译和生成的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”(在'ç'和'〜'之前)和ok“no ficheiro”。在中间,声音说的不是很明确...... 希望我是明确的。 =)
正如您所看到的,我尝试使用和不使用UrlEncode
并使用相同的结果...我也尝试使用UrlEncode所有网址。
我用BinaryWriter
尝试,问题是平等的。
我尝试在new Uri(url)
中传递myWebClient.DownloadFile
,但没有任何变化。
最令我烦恼的是,如果您将网址结果放在浏览器中,您就可以听到正确的文字转语音。 试一试:http://translate.google.com/translate_tts?tl=pt&q=Teste de criação no ficheiro
“Testedecriaçãonoficheiro”代表“文件创建测试”。
答案 0 :(得分:3)
以下对我来说很好:
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");
}
}
}