<?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>mindtrove &#187; jsonic</title>
	<atom:link href="http://mindtrove.info/tag/jsonic/feed/" rel="self" type="application/rss+xml" />
	<link>http://mindtrove.info</link>
	<description>Collecting ideas since 1980</description>
	<lastBuildDate>Thu, 01 Jul 2010 01:58:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>JSonic: Speech and sound using HTML5</title>
		<link>http://mindtrove.info/jsonic-speech-and-sound-using-html5/</link>
		<comments>http://mindtrove.info/jsonic-speech-and-sound-using-html5/#comments</comments>
		<pubDate>Tue, 11 May 2010 02:37:23 +0000</pubDate>
		<dc:creator>Peter Parente</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[jsonic]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[speech]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mindtrove.info/?p=318</guid>
		<description><![CDATA[I've released a new library called JSonic for text-to-speech synthesis and sound playback in browsers supporting HTML5 &#60;audio&#62;. The code is on GitHub along with full documentation of the JS and REST APIs. The client API is implemented as a Dojo dijit._Widget subclass. Other client implementations are possible as long as they provide the same [...]]]></description>
			<content:encoded><![CDATA[<p>I've released a new library called JSonic for text-to-speech synthesis and sound playback in browsers supporting HTML5 &lt;audio&gt;. The code is on <a href="http://github.com/parente/jsonic">GitHub</a> along with <a href="http://parente.github.com/jsonic">full documentation</a> of the JS and REST APIs.</p>
<p>The client API is implemented as a Dojo dijit._Widget subclass. Other client implementations are possible as long as they provide the same JS interface. The TTS synthesis is implemented server-side using <a href="http://espeak.sourceforge.net/">espeak</a> and <a href="http://www.tornadoweb.org/">Tornado</a>. Other server implementations are possible as long as they adhere to the REST API, and other speech engines can be plugged in rather easily.</p>
<p>The <a href="http://sites.google.com/site/uncopenweb/">UNC Open Web group</a> is looking to use JSonic to build self-voicing web games for kids with disabilities. I've already ported my <a href="http://mindtrove.info/spaceship">Spaceship!</a> game (<a href="http://github.com/parente/spaceship">also available on GitHub</a>) to use it instead of Outfox, and hope deploy it somewhere in the near future.</p>
<p>Bug reports, bug fixes, comments, questions, uses, and so on are welcome. Please use the issue tracker on the GitHub project page when reporting bugs.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindtrove.info/jsonic-speech-and-sound-using-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 audio caching</title>
		<link>http://mindtrove.info/html5-audio-caching/</link>
		<comments>http://mindtrove.info/html5-audio-caching/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 00:36:11 +0000</pubDate>
		<dc:creator>Peter Parente</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jsonic]]></category>
		<category><![CDATA[speech]]></category>

		<guid isPermaLink="false">http://mindtrove.info/?p=284</guid>
		<description><![CDATA[One of my latest coding endeavors is a text-to-speech interface for JavaScript using HTML5 &#60;audio&#62; elements to output synthesized speech from a server. To reduce the latency between a speech request and actual speech output, I'm using various levels of caching. One of these is the regular browser disk cache based on HTTP headers. It [...]]]></description>
			<content:encoded><![CDATA[<p>One of my latest coding endeavors is a <a href="http://github.com/parente/jsonic">text-to-speech interface for JavaScript</a> using HTML5 &lt;audio&gt; elements to output synthesized speech from a server. To reduce the latency between a speech request and actual speech output, I'm using various levels of caching. One of these is the regular browser disk cache based on HTTP headers.</p>
<p>It turns out that browser caching behavior for &lt;audio&gt; data varies wildly among browsers. The following table shows the HTML5 &lt;audio&gt; caching behavior of various browsers. I tested all of them on OS X 10.6 with the standard Mac Apache server hosting all of the tested audio files.</p>
<table>
<thead>
<tr>
<th>Browser</th>
<th>&lt;audio&gt; Behavior</th>
</tr>
</thead>
<tbody>
<tr>
<td>Firefox 3.6</td>
<td>Respects cache headers for the sound data. Only contacts the server when the cache item expires. &lt;audio&gt; elements pointing to the same <code>src</code> reuse the cache data.</td>
</tr>
<tr>
<td>Chrome 5.0.322.2</td>
<td>Contacts the server on every <code>load()</code>. When it receives a 304 response, does not refetch content.*</td>
</tr>
<tr>
<td>Safari 4.0.4</td>
<td>Contacts the server to fetch first two bytes of the audio file on every <code>load()</code>. Receives a 206 response with partial content. Fetches the additional bytes from the file. Receives another 206 response with the partial content. Performs another fetch and receives a 304 response with no data. Continues to alternate between fetches that receive 206 partial data responses and 304 not modified responses. Nothing appears to get cached.</td>
</tr>
<tr>
<td>Webkit r54921</td>
<td>Same behavior as Safari 4.0.4.</td>
</tr>
</tbody>
</table>
<p><span style="font-size: smaller;">* Though not cache related, audio output in Chrome is often clipped before the end of the actual audio data. When this occurs, Chrome fires the <code>onended</code> event even before the audible output finishes.</span> </p>
<p>Except for Firefox 3.6, all of these browsers seem to exhibit pretty terrible caching behavior when it comes to audio. I've reported bugs where I thought appropriate, but maybe I'm missing something. Am I supposed to include additional headers in the server-side response? Or maybe I'm glossing over some key part of the &lt;audio&gt; API? If so, please let me know. If not, yikes: &lt;audio&gt; support has definite room for improvement.</p>
]]></content:encoded>
			<wfw:commentRss>http://mindtrove.info/html5-audio-caching/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
