ОТКАЗ ОТ ОТГОВОРНОСТ: Това вероятно не е разрешено от Google. Не използвайте това без разрешение от Google.
Възможно е да използвате преобразуването на текст в говор на Google с текстове с произволен размер. Изисква обаче малко коригиране.
Ето го скрипта:
function textToSpeech(text, language) {
if(text === undefined || text === null || text.length === 0)
return
var vid = document.createElement("video")
var textParts = []
text.split(" ").forEach(function(word) {
var textPartsIndex = textParts.length - 1
var currentStr = textParts[textPartsIndex]
if(currentStr !== undefined && currentStr.length + word.length < 100)
textParts[textPartsIndex] += " " + word
else
textParts.push(word)
})
function play(txt) {
vid.src = "http://translate.google.com/translate_tts?tl=" + language + "&q=" + txt
vid.load()
vid.play()
}
var partIndex = 0
play(textParts[partIndex])
vid.addEventListener("ended", function() {
var part = textParts[++partIndex]
if(part !== undefined)
play(part)
else
vid.removeEventListener("ended")
})
}
ПРЕДИ да го използвате, трябва да затворите всички екземпляри на браузъра Chrome и на Windows машина да отворите „Run“ (WIN+R) и да въведете „chrome --no-referrers“ без „
На вашата страница вече можете да пишете (не разбирам холандски, така че това е само примерен текст, който намерих)
textToSpeech("Ik ga ervan uit dat de mens een groot vermogen bezit om externe informatie op te slorpen ,\" legt professor Georges uit . Hij kan zelfs 5 tot 6 maal méér informatie verwerken dan het debiet van het gesproken woord , 120 woorden per minuut . Teamgeest is voor mij geen ijdel woord . In de tweede plaats komen puur betekenisloze verhaspelingen niet in aanmerking , want die zijn niet ontstaan door verwarring met een ander woord .", "nl")
Ако вашето приложение се изпълнява само локално, т.е. не се хоства, не е нужно да стартирате chrome с командата --no-referrers.
Причината за деактивирането на референтите е, че Google анулира вашата заявка, ако има референт-заглавие.
ВЕРСИЯ НА IFRAME, КОЯТО НЕ ИЗИСКВА --без препратки
http://jsfiddle.net/9tTeg/
<body>
<script>
textToSpeech("Ik ga ervan uit dat de mens een groot vermogen bezit om externe informatie op te slorpen ,\" legt professor Georges uit . Hij kan zelfs 5 tot 6 maal méér informatie verwerken dan het debiet van het gesproken woord , 120 woorden per minuut . Teamgeest is voor mij geen ijdel woord . In de tweede plaats komen puur betekenisloze verhaspelingen niet in aanmerking , want die zijn niet ontstaan door verwarring met een ander woord .", "nl")
function textToSpeech(text, language) {
if(text === undefined || text === null || text.length === 0)
return
var vid = document.createElement("iframe")
document.body.appendChild(vid)
var textParts = []
text.split(" ").forEach(function(word) {
var textPartsIndex = textParts.length - 1
var currentStr = textParts[textPartsIndex]
if(currentStr !== undefined && currentStr.length + word.length < 100)
textParts[textPartsIndex] += " " + word
else
textParts.push(word)
})
function play(txt) {
vid.src = "http://translate.google.com/translate_tts?tl=" + language + "&q=" + txt
}
var partIndex = 0
play(textParts[partIndex])
var intervalId = setInterval(function() {
var part = textParts[++partIndex]
if(part !== undefined)
play(part)
else
clearInterval(intervalId)
}, 9000)
}
</script>
</body>
Подобрения: Вместо да разделяте низа с думи, използвайте точка и запетая, така че паузите да са по-естествени. Всяка част в момента се възпроизвежда с 9 секунди всяка, но ако думите са групирани с точки и запетаи, можете вместо това да изчислите времето, което има всяка част, като погледнете дължината на частта, тъй като тогава 9 секунди може да са твърде много .
person
Jan Sommer
schedule
29.05.2014