2

Google 翻訳で生成された 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" で OK です。真ん中の声で、あまり明確ではないことを言っています...が明確だったことを願っています。=)

ご覧のとおり、私は試してみましたがUrlEncode、同じ結果でした... すべての URL を UrlEncode も試しました。私はそれを試してみましたがBinaryWriter、問題は同じです。私はそれを渡そうとしますnew Uri(url)myWebClient.DownloadFile、何も変わりません。

私を最も悩ませているのは、URL の結果をブラウザに入力すると、適切なテキストを音声で聞くことができることです。試してみてください: http://translate.google.com/translate_tts?tl=pt&q=Teste de criação no ficheiro

「Teste de criação no ficheiro」は「ファイル作成テスト」の略です。

4

1 に答える 1

4

以下は私にとってはうまくいきます:

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");
        }
    }
}
于 2011-10-14T20:57:16.667 に答える