<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:www.local-guru.net,2005:/blog/tag/tts</id>
  <link type="text/html" href="http://www.local-guru.net" rel="alternate"/>
  <link type="application/atom+xml" href="http://www.local-guru.net/blog/tag/tts.atom" rel="self"/>
  <title>GuruBlog : Articles about tts</title>
  <subtitle>local-guru.net</subtitle>
  <updated>2010-12-30T07:46:41+01:00</updated>
  <generator>GuruBlog engine</generator>
  <entry>
    <id>tag:www.local-guru.net,2005:Article/358</id>
    <published>2010-12-30T07:46:41+01:00</published>
    <updated>2010-12-30T07:46:41+01:00</updated>
    <link type="text/html" href="http://www.local-guru.net//blog/2010/12/30/processing-ttslib-version-0-3-released" rel="alternate"/>
    <author>
      <name>Nikolaus Gradwohl</name>
    </author>
    <title type="html">Processing TTSlib version 0.3 released</title>
    <category term="processing" scheme="http://www.local-guru.net/blog/tag/processing"/>
    <category term="tts" scheme="http://www.local-guru.net/blog/tag/tts"/>
    <category term="library" scheme="http://www.local-guru.net/blog/tag/library"/>
    <content type="html">&lt;p&gt;I just released a new version of my &lt;a href="http://www.local-guru.net/blog/pages/ttslib"&gt;processing freetts wrapper&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In this version the pitch of the voice can be altered by using&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tts.setPitch( 1000 ); // set the base frequency to 1000 hertz
tts.setPitchShift( 1.2 ); // how much should the pich change over time?
tts.setPitchRange(100); // in this example the pitch will vary between 1000 and 1100 hertz
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Go to the &lt;a href="http://www.local-guru.net/blog/pages/ttslib"&gt;ttslib project page&lt;/a&gt; and download a
copy. Install as unsual by unzipping it into your sketchbook/libraries Folder.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>tag:www.local-guru.net,2005:Article/290</id>
    <published>2010-06-20T17:33:00+02:00</published>
    <updated>2010-06-20T17:33:00+02:00</updated>
    <link type="text/html" href="http://www.local-guru.net//blog/2010/6/20/using-mbrola-voices-with-the-processing-ttslib" rel="alternate"/>
    <author>
      <name>Nikolaus Gradwohl</name>
    </author>
    <title type="html">Using Mbrola-Voices with the Processing ttslib</title>
    <category term="processing" scheme="http://www.local-guru.net/blog/tag/processing"/>
    <category term="ttslib" scheme="http://www.local-guru.net/blog/tag/ttslib"/>
    <category term="tts" scheme="http://www.local-guru.net/blog/tag/tts"/>
    <content type="html">&lt;p&gt;To use &lt;a href="http://tcts.fpms.ac.be/synthesis/mbrola.html"&gt;mbrola-voices&lt;/a&gt; with the processing ttslib make sure you have installed the
newest version of &lt;a href="http://www.local-guru.net/blog/pages/ttslib"&gt;ttslib&lt;/a&gt; (version 0.2 at the time of writing). Download the mbrola-binary
for your system and make sure the binary is named mbrola (or else freetts won't find it).&lt;/p&gt;

&lt;p&gt;Make sure you can live with the mbrola-licence.&lt;/p&gt;

&lt;p&gt;Download the us voices you want to use and unzip them to the directory where your mbrola binary
lives.&lt;/p&gt;

&lt;p&gt;on my linux system the content of the mbrola directory looks like this&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;./mbrola206a-linux-ppc
./mbrola-linux-alpha
./mbrola_linux_libc5
./mbrola
./mbrola-linux-i386
./mbrola302b-linux-ppc
./us1
./us1/us1mrpa
./us1/license.txt
./us1/us1.txt
./us1/TEST
./us1/TEST/xmas.pho
./us1/TEST/alice.pho
./us1/TEST/push.pho
./us1/TEST/mbroli.ini
./us1/TEST/mbrola.pho
./us1/us1
./us2
./us2/license.txt
./us2/us2.txt
./us2/TEST
./us2/TEST/babel.pho
./us2/TEST/alice.pho
./us2/TEST/mbroli.ini
./us2/TEST/mbrola.pho
./us2/us2
./us3
./us3/us3
./us3/us3.txt
./us3/license.txt
./us3/TEST
./us3/TEST/cslu.pho
./us3/TEST/diphone.pho
./us3/TEST/mike.pho
./us3/TEST/mbroli.ini
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;in the setup method of your processing sketch set the absolute path to your mbrola directory
as a java system property. Now the name of the mbrola voice you want to use can be added
as a string parameter to the TTS constructor&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import guru.ttslib.*;

TTS tts;

void setup() {
  System.setProperty("mbrola.base","/path/to/mbrola/");
  tts = new TTS("mbrola_us1");
}

void draw() {
}

void mousePressed() {
  tts.speak("Hello! I'm a talking processing sketch!");
}
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>tag:www.local-guru.net,2005:Article/186</id>
    <published>2009-09-02T16:44:00+02:00</published>
    <updated>2009-09-02T16:44:00+02:00</updated>
    <link type="text/html" href="http://www.local-guru.net//blog/2009/9/2/my-name-is-192-168-159-16" rel="alternate"/>
    <author>
      <name>Nikolaus Gradwohl</name>
    </author>
    <title type="html">My name is 192.168.159.16</title>
    <category term="processing" scheme="http://www.local-guru.net/blog/tag/processing"/>
    <category term="art" scheme="http://www.local-guru.net/blog/tag/art"/>
    <category term="tts" scheme="http://www.local-guru.net/blog/tag/tts"/>
    <category term="arduino" scheme="http://www.local-guru.net/blog/tag/arduino"/>
    <content type="html">&lt;p&gt;&lt;a href="http://varvarag.cdrews.de/"&gt;Varvara Guljajeva&lt;/a&gt; is using my &lt;a href="http://www.local-guru.net/blog/pages/ttslib"&gt;processing tts library&lt;/a&gt; for her lates project
&lt;a href="http://varvarag.cdrews.de/projects.htm#ntw_doll"&gt;My name is 192.168.159.16&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;My name is 192.168.159.16 - is a metaphorical visualization of nowadays-human beings.  In my point of view we are not
bounded to one body anymore. We are extended through networks to infinity. The location does not matter, what matters
is connection. Thus, at this point I totally agree with Mitchell &#8220;disconnection would be amputation. I link therefore,
I am.&#8221; We are becoming gradually fully equipped and totally dependent on technology cyberorgs.&lt;/p&gt;

&lt;p&gt;The installation consists of 4 dolls in each a speaker inside, 4 relays, arduino, a computer, and a modem.
We are using Processing, TTS (text to speech), and Arduino. The independent and at the same time isolated network
is created. IP addresses are continuously renewed and sent to a random doll. Thus only one doll is speaking at a
time (4 speakers are controlled by 4 relays through arduino).&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;the installation looks really cool - a bit creepy what she did to the dolls :-)&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>tag:www.local-guru.net,2005:Article/173</id>
    <published>2009-05-16T20:31:00+02:00</published>
    <updated>2009-05-16T20:31:00+02:00</updated>
    <link type="text/html" href="http://www.local-guru.net//blog/2009/5/16/ttslib-for-processing" rel="alternate"/>
    <author>
      <name>Nikolaus Gradwohl</name>
    </author>
    <title type="html">ttslib for processing</title>
    <category term="processing" scheme="http://www.local-guru.net/blog/tag/processing"/>
    <category term="tts" scheme="http://www.local-guru.net/blog/tag/tts"/>
    <content type="html">&lt;p&gt;i have written another library for processing. This time its a wrapper around the &lt;a href="http://freetts.sourceforge.net/docs/index.php"&gt;freetts library&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;now processing sketches can have a voice too.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.local-guru.net/blog/pages/ttslib"&gt;click here&lt;/a&gt; to go to the project page.&lt;/p&gt;

&lt;p&gt;i cannot present an applet as an example this time, because freetts doesn't work in applets. So i
show the example.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import guru.ttslib.*;

TTS tts;

void setup() {
  size(100,100);
  smooth();
  tts = new TTS();
}

void draw() {
  background(255);
  fill(255);
  ellipse( 35, 30, 25, 35 );
  ellipse( 65, 30, 25, 35 );
  fill(0);
  ellipse( 40, 35, 10, 10 );
  ellipse( 60, 35, 10, 10 );
  noFill();
  arc(50,50,50,50,0,PI);

}

void mousePressed() {
  tts.speak("Hi! I am a speaking Processing sketch");
}
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
</feed>

