我有这个段落
年轻女孩背上的天使翅膀纹身指向警官 一个失控的,一个叫做Tina Fontaine的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 三江源
答案 0 :(得分:1)
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;
}
?>
要将字符串正确拆分为多个部分,您可以查找与Split string into sentences in javascript
类似的问题