<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rincón de la Programación.</title>
	<atom:link href="http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion</link>
	<description>Blogs Universidad Icesi</description>
	<lastBuildDate>Thu, 07 Aug 2008 18:49:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>C#.Net: Texto a Voz.</title>
		<link>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/17/texto-a-voz-en-csharp-c-net/</link>
		<comments>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/17/texto-a-voz-en-csharp-c-net/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 19:24:06 +0000</pubDate>
		<dc:creator>Wilmer Bravo Zapata</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/17/texto-a-voz-en-csharp-c-net/</guid>
		<description><![CDATA[A lo largo de nuestro ciclo de aprendizaje de la programación, muchos hemos aprendido a mostrar información en consola y luego en ventanas… ¿Pero alguna vez pensaste en que además de consola y ventanas, ambas con texto e imágenes, también podrías usar voz? Y no se vale que grabes el sonido y luego lo reproduzcas [...]]]></description>
			<content:encoded><![CDATA[<p>A lo largo de nuestro ciclo de aprendizaje de la programación, muchos hemos aprendido a mostrar información en consola y luego en ventanas…</p>
<p>¿Pero alguna vez pensaste en que además de consola y ventanas, ambas con texto e imágenes, también podrías usar voz?</p>
<p>Y no se vale que grabes el sonido y luego lo reproduzcas para cada acción…</p>
<p>Vamos a aprender a hacer que nuestra aplicación aproveche las características de voz que incluye Windows.</p>
<p>Para este ejemplo utilicé Windows Vista, pero lo probé posteiormente en Windows Xp y funcionó correctamente.</p>
<p>La diferencia está en la voz, en Windows Xp se utiliza la voz Microsoft Sam, y en Windows Vista se utiliza la voz Microsoft Anna.</p>
<h1>Requisitos previos:</h1>
<ul>
<li>Sistema operativo: Microsoft Windows Vista/XP</li>
<li>Lenguaje de programación: CSharp == C#</li>
<li>IDE de programación: Microsoft Visual C# 2008 Express (VisualStudio 2008 Professional o Team System)</li>
<li>Microsoft .NET Framework 3.0 o superior.</li>
</ul>
<h1>Ejemplo Básico:</h1>
<p>Creamos nuestro proyecto, puede ser de Windows Forms, WPF o de consola.</p>
<p>Agregamos la referencia a <em><strong>System.Speech</strong></em>.</p>
<p>En la clase donde realizaremos las tareas haremos un using indicando el namespace: System.Speech.Synthesis;</p>
<p>Y ahora a divertirnos un poco…</p>
<p>Para un ejemplo sencillo:</p>
<p>Creamos un objeto de tipo SpeechSynthesizer:</p>
<p><strong>SpeechSynthesizer ss = new SpeechSynthesizer();</strong></p>
<p>Ahora ya estás a solo una línea de código de escuchar hablar a tu aplicación:</p>
<p>ss.Speak(&#8220;Hi! I&#8217;m your application&#8230;&#8221;);</p>
<p>Al objeto SpeechSynthesizer le llamamos el método Speak, y le indicamos el texto con las palabras que queremos escuchar… ¿Olvidé decir que en inglés?&#8230;Leí que Windows Vista Ultimate incluye más idiomas para el Texto a Voz, puedes comprobarlo buscando “Texto a voz” desde el menú de inicio…</p>
<p>Ahora sólo queda ejecutar nuestra aplicación y listo…</p>
<h1>Ejemplo Avanzado:</h1>
<p>El ejemplo anterior era el ejemplo básico&#8230; pero podemos hacer algo más elaborado usando el objeto PromptBuilder y PromptStyle, que nos permite definir algunas características de la voz que utilizará el SpeechSynthesizer …</p>
<p>A continuación un ejemplo con sus respectivos comentarios:</p>
<p><font color="#008000">//Creamos nuestro objeto de tipo SpeechSynthesizer<br />
//(Despues de haber agregado las referencias correpondientes)</font><br />
<strong>SpeechSynthesizer speaker = new SpeechSynthesizer(); </strong></p>
<p><font color="#008000">//Creamos un Objeto de tipo PromptBuilder<br />
//Que nos permitirá crear una especie de guión para el texto a voz&#8230;<br />
</font><strong>PromptBuilder guion = new PromptBuilder();</strong></p>
<p><font color="#008000">//Agregamos una porción de texto, que no será escuchado aún,<br />
//pues por ahora sólo estamos formando el guión&#8230;</font><br />
<strong>guion.AppendText(&#8220;This is a normal voice&#8230;&#8221;); </strong></p>
<p><font color="#008000">//El texto anterior será pronunciado de forma normal,<br />
//como cuando usamos sólo el método Speak y le indicamos el texto&#8230; </font></p>
<p><font color="#008000">//Si queremos cambiar el estilo de la voz,<br />
//utilizamos un objeto de tipo PromptStyle,<br />
//para aplicar algunos cambios a nuestro guión (PromptBuilder)</font><br />
<strong>PromptStyle myStyle = new PromptStyle(); </strong></p>
<p><font color="#008000">//Así que empezamos a definir el estilo de voz: </font></p>
<p><font color="#008000">//La propiedad Rate del PromptStyle nos sirve para<br />
//establcer la velocidad de la voz,  que puede ser: </font></p>
<p><font color="#008000">//PromptRate.ExtraFast<br />
//PromptRate.ExtraSlow;<br />
//PromptRate.Fast;<br />
//PromptRate.Medium;<br />
//PromptRate.NotSet;<br />
//PromptRate.Slow; </font></p>
<p><font color="#008000">//En este caso utilizamos una voz Fast&#8230;</font><br />
<strong>myStyle.Rate = PromptRate.Fast; </strong></p>
<p><font color="#008000">//Ahora definimos el tono de voz:<br />
//PromptEmphasis.Moderate;<br />
//PromptEmphasis.None;<br />
//PromptEmphasis.NotSet;<br />
//PromptEmphasis.Reduced;<br />
//PromptEmphasis.Strong;</font><br />
<strong>myStyle.Emphasis = PromptEmphasis.Strong; </strong></p>
<p><font color="#008000">//Hasta ahora sólo hemos definido el estilo,<br />
//pero no lo hemos aplicado&#8230;</font></p>
<p><font color="#008000">//Así que le decimos al guión que empiece a aplicar el<br />
//estilo utilizando el método StartStyle del PromptBuilder:</font><br />
<strong>guion.StartStyle(myStyle); </strong></p>
<p><font color="#008000">//Así el texto que agreguemos a partir de a inicialización anterior,<br />
//tendrá el estilo que creamos:</font><br />
<strong>guion.AppendText(&#8220;But This is my strong style&#8230;&#8221;);</strong></p>
<p><font color="#008000">//Cuando deseemos cambiar de estilo debemos finalizar la<br />
//aplicación del estilo, utilizando el método EndStyle del PromptBuilder:</font><br />
<strong>guion.EndStyle(); </strong></p>
<p><font color="#008000">//El siguiente texto ya no estará afectado por el estilo<br />
//que definimos anteriormente:</font><br />
<strong>guion.AppendText(&#8220;This is my normal voice again&#8230;&#8221;); </strong></p>
<p><font color="#008000">//Bien, hasta aquí creamos y aplicamos nuestro estilo al guión,<br />
//así que sólo queda decirle a nuestro SpeechSynthesizer qué debe decir: </font></p>
<p><font color="#008000">//En vez de pasarle como argumentos una cadena de texto,<br />
//usamos el PromptBuilder(al que hemos denominado guión para<br />
//entenderlo mejor):<br />
</font><strong>speaker.Speak(guion); </strong></p>
<p><font color="#008000">//Al hacer la llamada anterior hemos de escuchar la voz según<br />
//lo que le indicamos con el PromptBuilder y el PromptStyle.</font></p>
<p>Espero que les halla gustado y que lo prueben&#8230;</p>
<p>Hasta la próxima&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/17/texto-a-voz-en-csharp-c-net/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hello World!</title>
		<link>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/10/hello-world/</link>
		<comments>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/10/hello-world/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 23:28:30 +0000</pubDate>
		<dc:creator>Wilmer Bravo Zapata</dc:creator>
				<category><![CDATA[Varios]]></category>

		<guid isPermaLink="false">http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/10/hello-world/</guid>
		<description><![CDATA[He creado este blog para publicar algunas notas de programación que he hecho, así como las que espero hacer en el futuro… Estas notas de programación están dirigidas a la comunidad ICESI, y a cualquier usuario que acceda al sitio con la intención de aprender y de disfrutar la programación… Bienvenidos a mi blog, al [...]]]></description>
			<content:encoded><![CDATA[<p><font face="Calibri">He creado este blog para publicar algunas notas de programación que he hecho, así como las que espero hacer en el futuro…</font></p>
<p><font face="Calibri">Estas notas de programación están dirigidas a la comunidad ICESI, y a cualquier usuario que acceda al sitio con la intención de aprender y de disfrutar la programación…</font></p>
<p><font face="Calibri">Bienvenidos a mi blog, al que le he llamado <strong><em>Rincón de la Programación</em></strong>… un espacio para el Tiburón que llevamos dentro (Véase: <a href="http://blogs.msdn.com/tropezones/archive/2006/09/28/774506.aspx" title=".NET con tropezones.">¿Eres rape o tiburón?</a>)&#8230;</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.icesi.edu.co/blogs_estudiantes/rinconprogramacion/2008/07/10/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

