C # Скачать текст в речь из Google Translate поставляется с проблемами - PullRequest
2 голосов
/ 13 октября 2011

Я пытаюсь скачать mp3-файл, сгенерированный google translate, и , хотя для достижения этого перевод не выполняется должным образом.

Я португалец, и мы используеммного специальных символов, и я думаю, что это проблема ...

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" (до "ç"'и' ~ ') и хорошо с "без Ficheiro".В середине голос говорит что-то не очень явное ... Надежда I была явной.=)

Как вы можете видеть, я пытаюсь с и без UrlEncode и с тем же результатом ... Я пытаюсь UrlEncode все URL тоже.Я пробую это с BinaryWriter, и проблема равна.Я пытаюсь пропустить new Uri(url) в myWebClient.DownloadFile и ничего не меняется.

Больше всего меня раздражает то, что если вы добавите результат URL в свой браузер, вы сможете прослушивать правильный текст в речь.Попробуйте: http://translate.google.com/translate_tts?tl=pt&q=Teste криминал без фичейро

«Тест криптофобия» означает «Тест создания файла».

1 Ответ

3 голосов
/ 15 октября 2011

У меня нормально работает:

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");
        }
    }
}
...