私はGoogle翻訳を使用して、次のURLでテキストを音声に変換して
http://translate.google.com/translate_tts?tl=%s&q=%s
います。パラメータtl
には、音声に変換するテキストの言語の言語コードと、変換するq
テキストが含まれています。
通常の単語(特殊文字なし)は正しいオーディオファイルを返します。
したがって、私のアプリケーションでは、これが私が行うことです(no
ノルウェー語の言語コードです)。
url = "http://translate.google.com/translate_tts?tl=%s&q=%s" % ('no', urllib.quote('kjendis'))
#url = http://translate.google.com/translate_tts?tl=no&q=kjendis
self.response.headers["Content-Type"] = "audio/mpeg"
self.response.out.write(urlfetch.fetch(url).content)
これにより、正しいサウンドが返されます。
私はプレーンなウェブアプリを使用しています。
しかし、特殊文字が含まれている単語(vår)がある場合、何かが正しくありません。生成されるURLはですhttp://translate.google.com/translate_tts?tl=no&q=v%C3%A5r
。(åはパーセントエンコーディングに正しく変換されます)
ブラウザでそのURLを開くと正しいサウンドが得られますが、urlfetch.fetchを使用して同じURLを読み取ると、返されるサウンドが正しくありません。
ここで何が問題になっていますか?フェッチが何らかの形でURLを変更しているとしか思えません。