Hack x Crack - Comunidad de Seguridad informática

Programación => Programación Web => Mensaje iniciado por: FaySor en Enero 21, 2015, 09:45:47 pm

Título: [Ideas] *- Métodos para dar Voz a Nuestra Web -*
Publicado por: FaySor en Enero 21, 2015, 09:45:47 pm
Buenas a todos Comunidad  ;D, hace tiempo tengo en mente algo, relacionado al Titulo del tema.
Pensando en los métodos que puedo utilizar para dar Voz a mis Web... bueno la cosa es que he buscado y he encontrado.. ( buenas y malas ).

Por eso cree este tema para tratar algunos métodos que conozco y que conozcan para compartir y tener más claras las ideas que se pueden aplicar.

#-Métodos:

    1- Mp3
    2- VozMe
    3- Api Google


Me decidi por la Api de Google, por ser la más comoda.

Api Google

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
<head>
<title>Text2Voz</title>
<meta charset="utf-8">
<meta name="author" content="FaySor">
<script type="text/javascript" src="Speak-Web.js"></script>
</head>
<body>

<p>Buenas a todos Comunidad  ;D, hace tiempo tengo en mente algo, relacionado al Titulo del tema.</p>
<p>Pensando en los métodos que puedo utilizar para dar Voz a mis Web... bueno la cosa es que he buscado y he encontrado.. ( buenas y malas ).</p>

<p>Por eso cree este tema para tratar algunos métodos que conozco y que conozcan para compartir y tener más claras las ideas que se pueden aplicar.</p>

<p>#-Métodos:</p>

<ol>
<li>Mp3</li>
<li>VozMe</li>
<li>Api Google</li>
</ol>

<p>Me decidi por la Api de Google, por la más comodida.</p>

<p>Api Google</p>

<p>En el código estoy utilizando la Api de Google, como algunos sabrán esa Api nos</p>
<p>permite 100 caracteres como máximo.</p>
<p>Entonces cree un Script que dividiera un párrafo en diferentes partes de 100 Caracteres.</p>

<p>Bueno eso es todo, cualquier que sepa un método más optimo, sin limitaciones, etc.
Sera con los ojos y brazos abierto :)  ::)  :o.</p>

<p>Saludos FaySor.</p>

</body>
</html>

Código: [Seleccionar]
/*
[-${ Autor   : By FaySor
[-${ Version : 0.1
*/

var sleep, apiFs, apiGoogle, i, x, item;
var sP, sP1, sC, sC1;
apiFs = '<audio src="" type="audio/mpeg" id="ttsG"></audio>';
apiGoogle = "http://translate.google.com/translate_tts?tl=es&q=";
item = new Array();
var Spdr = new Array(".", ",", " ");

window.onload = function () {
if ( document.getElementById('pnlTts') === null ) {
document.body.innerHTML += '<div id="pnlTts">' + apiFs + '</div>';
};
};

document.addEventListener("click", function ( event ) {
// Support IE6-8
  var target = event.target || event.srcElement;
  Txt2Voz (target.innerHTML);
}, false);

function Txt2Voz (strOut) {
clearInterval(sleep);
if ( strOut.length <= 100 ) {
playVoz (strOut);
} else {
i = 0;
item = [];
midStrIn (strOut);
};
};

function midStrIn (strOut) {
sP = strOut.split(".");
if ( sP.length > 1 ) {
for ( sP1 in sP ) {
sC = sP[sP1].split(",");
if ( sC.length > 0 ) {
for ( sC1 in sC ) {
fcnItem ( sC[sC1] );
};
} else {
fcnItem ( sP[sP1] );
};
};
} else {
sC = strOut.split(",");
if ( sC.length > 1 ) {
for ( sC1 in sC ) {
fcnItem ( sC[sC1] );
};
} else {
fcnItem (strOut);
};
};
sleepS ();
}

function fcnItem (strOut) {
if ( strOut.trim() != "" ) {
var tmpStr;
var midStr = strOut.split(" ");
item[i] = "";
for (x = 0; x<midStr.length; x++ ) {
tmpStr = item[i] + " " + midStr[x];
if ( tmpStr.length <= 100 ) {
item[i] += midStr[x] + " ";
} else {
i++;
item[i] = "";
item[i] += midStr[x] + " ";
};
};
i++;
};
}

function sleepItem () {
if ( document.getElementById('ttsG').paused == true ) {
if ( !item[x] ) {
clearInterval(sleep);
} else {
playVoz (item[x]);
x++;
};
};
}

function sleepS () {
x = 0;
sleep = setInterval(function () { sleepItem (); }, 0);
}

function playVoz (strOut) {
vzTTS = document.getElementById("ttsG");
vzTTS.pause();
vzTTS.src = apiGoogle + strOut;
vzTTS.play();
}

En el código estoy utilizando la Api de Google, como algunos sabrán esa Api nos
permite 100 caracteres como máximo.
Entonces cree un Script que dividiera un párrafo en diferentes partes de 100 Caracteres.

Bueno eso es todo, cualquier que sepa un método más optimo, sin limitaciones, etc.
Sera con los ojos y brazos abierto :)  ::)  :o.

Saludos FaySor.