javascript — Google Text to Speech Api на веб-сайте воспроизведения по клику

у меня есть этот параграф

Татуировка ангельских крыльев на спине девушки указала офицерам
15-летней школьнице по имени Тина Фонтейн. В
дней дело Тины было заголовками по всей Канаде, а не только для
ужасающий характер ее смерти, но для чего она пришла
представлять.

и хочу играть в нее на моем сайте по клику !
до сих пор это мой лучший код, говорят, что он не может обрабатывать более 100 символов.

var audio = new Audio();
audio.src ='http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello%20World.';
audio.play();

Есть предложения? используя только jquery / Javascript / PHP
Спасибо

-2

Решение

function say( text ){
if('speechSynthesis' in window) { // Chrome only !!

var speech = new SpeechSynthesisUtterance( text );
speech.lang = 'en-US';
window.speechSynthesis.speak(speech);

} else { // Other browsers !!

// Use AJAX (with GET) to a .php to file_get_contents
// generate the <100 by <100 charaters audio files, and nest in callbacks

}
}say("A tattoo of angel wings can handle more than 100 characters");

else часть кода

$("#playButton").click(function(){
var string = encodeURIComponent( $("textarea").val() );
// TODO: split 100+ string into chunks of rightly punctuated sentences.
$.ajax({
data: { text: string },
success : function(d) {
var audio = new Audio();
audio.src = "data:audio/mpeg;base64,"+d;
audio.play();
audio.onended = function() {
alert("Ended playing first part");
// TODO : if we have chunks, play the next one!
}
}
});
});

PHP выглядит так: (вы можете поместить его на той же странице (вверху)!)

<?php
if ($_SERVER['REQUEST_METHOD'] === 'GET' && isset($_GET['text']) && isset($_GET['lang'])) {
$voice = file_get_contents("http://translate.google.com/translate_tts?q=". $_GET['text'] ."&tl=". $_GET['lang'] ."&ie=UTF-8");
echo base64_encode( $voice );
exit;
}
?>

Чтобы правильно разделить строку на части, вы можете искать вопросы, похожие на Разделить строку на предложения в JavaScript

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]