2015-01-21 4 views
1

Я пытаюсь сделать TTS с помощью сервиса Google Translate URL.Ошибка с HTML5 Audio

Ниже приведен код Javascript.

function longSentenceSpeak(text) 
{ 
    var string = text.trim().split(" ").join("+"); 
    var finalString = string.replace(";",",") 
    var url = "http://www.translate.google.com/translate_tts?tl=en&q="+finalString; 

    var audio = document.getElementById('audio'); 

    var source = document.getElementById('source'); 
    source.src=url; 

    audio.load(); //call this to just preload the audio without playing 
    audio.play(); //call this to play the song right away 
} 

Ниже мой HTML

питания TODO название

<script src="scripts/TTS.js"></script> 
    <script> 
     function longText() 
     { 
      longSentenceSpeak("hello world "); 
     } 
    </script> 
</head> 
<body> 
    <audio id="audio"> 
     <source id="source" src="" type="audio/wav" /> 
    </audio> 

    <div><button onclick="longText()">Click me</button></div> 
</body> 

Однако это просто не работает, кажется, что HTML 5 аудио не может для обработки URL. Когда я запускаю этот код, я получаю следующую ошибку.

Failed to load resource: the server responded with a status of 404 (Not Found) (12:49:15:455 | error, network) 
    at http://www.translate.google.com/translate_tts?tl=en&q=hello 

Но я уверен, что URL является правильным, потому что вы можете попробовать это

http://www.translate.google.com/translate_tts?tl=en&q=hello%20world

Ниже JS Fiddle Ссылка

http://jsfiddle.net/f1hgk5sc/

Что я сделал не так Вот?

+0

Я действительно получил ошибку: http://i.imgur.com/k94RKFV.png, иногда она работала, иногда это. – jdphenix

ответ

1

Ну, я просто скопировал ваш код и все отлично работает.

function longSentenceSpeak(text) { 
 
    var string = text.trim().split(" ").join("+"); 
 
    var finalString = string.replace(";", ",") 
 
    var url = "http://www.translate.google.com/translate_tts?tl=en&q=" + finalString; 
 

 
    var audio = document.getElementById('audio'); 
 

 
    var source = document.getElementById('source'); 
 
    source.src = url; 
 

 
    audio.load(); //call this to just preload the audio without playing 
 
    audio.play(); //call this to play the song right away 
 
}
<html> 
 

 
<head> 
 
    <script> 
 
    function longText() { 
 
     longSentenceSpeak("hello world "); 
 
    } 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <audio id="audio"> 
 
    <source id="source" src="" type="audio/wav" /> 
 
    </audio> 
 

 
    <div> 
 
    <button onclick="longText()">Click me</button> 
 
    </div> 
 
</body> 
 

 
</html>

+0

нет звука. Дайте ошибку 'Не удалось загрузить ресурс: сервер ответил статусом 404 (не найден) (14: 45: 09: 044 | ошибка, сеть) по адресу http: //www.translate .google.com/translate_tts? tl = ru & q = hello + world –

+0

Какой веб-браузер вы используете? – Glapa

+0

Google Chrome .. –