【发布时间】:2015-06-01 23:30:56
【问题描述】:
我正在制作一个需要音频和视觉翻译的语言应用程序。本来想用谷歌翻译API的,但是根据this SO post看来,“解释是谷歌限制了这个服务的使用”。
但是这个 SO 帖子 Google Text-To-Speech API 说我可以使用 tl 和 q 参数,例如 http://translate.google.com/translate_tts?tl=zh-CN&q=Hello 来返回音频。这给了我一个奇怪的“你好”的中文音译,它说“Ha Low”而不是“Ni Hao”。
用户还说“它会自动生成一个 wav 文件,您可以通过 HTTP 请求轻松获取该文件”。当我 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 我需要的是......每次用户将鼠标悬停在一个外来词上时,它都会播放这个词音频。我可以每次向 API 发出请求并按需播放,但我认为这可能很昂贵......并且希望预先指定常用单词并将其音频文件存储在数组中。我想我可以缓存玩家通常悬停的单词?
-
我幸运地使用了多个音频标签和预加载,但 API 似乎足够快,不需要预加载...
标签: javascript api audio google-api