我正在制作一个需要音频以及视觉翻译的语言应用程序。我想过使用谷歌翻译API,但根据this SO post,似乎“解释是Google限制了这项服务的使用。”谷歌翻译API文本到语音转换
但是,这个SO帖子,Google Text-To-Speech API,说我可以使用tl
和q
PARAMS,像http://translate.google.com/translate_tts?tl=zh-CN&q=Hello
返回音频。这给了我一个中文的“你好”的怪异音译,里面写着“Ha Low”而不是“Ni Hao”。
用户还声明“它会自动生成一个可以轻松获得HTTP请求的wav文件”。当我GET
使用jsonp
(需要用这个,因为$.get()
或非JSONP请求都起源封锁)我得到以下不可读错误:
代码:
var theApp = angular.module('myApp', []);
theApp.controller('APICtrl', ['$scope', '$http',
function($scope, $http) {
var httpRequest = "http://translate.google.com/translate_tts?tl=" + "zh-CN" + "&q=" + "Hello";
$http.jsonp(httpRequest)
.success(function(data) {
console.log(data);
}
);
}
]);
所以我的问题是...有没有谷歌翻译API访问音频文件的标准端点?如果没有,那么做到这一点的好方法是什么?
jsonp只对文本数据有效,不支持二进制。你需要保存音频字节,还是只播放它们? – dandavis
@dandavis我需要的是......每当用户将鼠标悬停在某个外部单词上时,它将播放单词audio。我可以每次都向API发出请求并按需播放,但我认为这可能很昂贵,并且希望预先指定常用词并将其音频文件存储在数组中。我想我可以缓存通常悬停的单词玩家? – Growler
我有运气使用多个音频标签和预加载,但API似乎足够快,不需要预加载... – dandavis