我正在製作一個需要音頻以及視覺翻譯的語言應用程序。我想過使用谷歌翻譯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