- Feasible Impossibilities - https://www.impossibilities.com/v4 -

US Currency Text-To-Speech Component for Flash MX – No Server Required

Before the good stuff, some background. As many of you know, I have been working for some time now and talking about making available a commercial version or service-based pay system for the server-based, dynamic, text-to-speech solution for Flash that I have been demonstrating and using for a little over 2 years now. Here are some previous postings on the topic: May 24th, 2002 [1], July 24, 2002 [2], and a few others in my blog archives. I have had some sputters and coughs in getting things going, and recently even some criticisms that I should stop teasing folks about this unless I can produce it commercially or sell it outright. Well, I think what I would like to do is simply provide the plans for folks to do it on their own, specifically, make it open source project. I have a full time job, and as much as I would like to really develop this fully, there are alternatives, and I just don’t have the time to dedicate to providing the level of commercial support I would want to provide without quitting my day job. So I have tentative plans for writing up the documentation and instructions, all the source, several versions and solutions actually, the whole shebang, and make it open source. Sounds like a good article for Macromedias DevNet or inclusion on a future DRK don’t you think? 🙂 I’ll post more as this pans out and I decide on the type of open source licensing.
Now for the other good stuff. I realize there are times when you can’t or don’t want to rely on server side solutions to drive an application, for performance issues, or more particularly for CD content, etc. I had this specific need for a solution in a recent project I developed, that would allow Flash to dynamically read and speak aloud US currency/dollar amounts, but without relying on a backend server to do the hardwork. Here is the first version I hacked together from remnants of that project. [3] It’s kind of a proof of concept, since its not fully optimized (read that as: its got sloppy code right now) but it is functional nonetheless. I plan on fleshing this out a bit more and making it available as a component. Here are the features, ideas on usage, etc. thus far:
The projects goal is to end up with a component that provides an API to allow Flash MX apps,
specifically RIA Flash MX apps, to programmatically read aloud US
currencies (dollar/cents amounts up to billions or higher) in a voice of your own design, without
any backend server requirements.

Intended Theorized Usage:
RIA’s developed in Flash MX that deal with currencies such as:

  • Shopping cart checkouts
  • Banking/Financial applications
  • Calculators
  • ADA compliance
  • Integration into Macromedia Central applets/shopping cart
  • Enhancement to screen readers’s specialty plugins and server side technology used to generate speech in Flash
  • Tech Details:

  • The current incarnation/version only supports dollar amounts bettween 10.000.00 and 99,999.99 The reason for this is simply because that was the requirement of the app I built this for originally. I plan on fully fleshing that out
  • Few little bugs in this version to correct.
  • Depending on the audio samples and the sound output settings, the core routines and assets can go as low as a 8k or so. Typically for best results with the current voice, Ihave found it usually is around 24-60k added to your application, which can le loaded dynamically on an as needed basis, with full support for shared libraries.
  • All of the audio samples used in the app can be replaced with your own voice, a voice of a celebrity, or simply by running an AppleScript I developed which allows you to quickly regenerate the audio assets in only seconds, to allow the use of any of the built in text-to-speech voice included with all Apple Mac operating systems (About 22 individual voices). I am investigating a similar script for Windows based systems.
  • The timing will have programattical control to refine the pronunciation timing.
  • It potentially could be modified and localized for other currencies at a future
    date/time simply be changing the assets, and some of the logic used to
    determine pronunciation order.
  • Thats about it, take a look at the demonstration version [3] and let me hear your comments and thoughts. Would love to integrate any cool ideas folks might have as I move forward with this. On a final note, I had a posting in a comment on my site about someone who used Flash MX in combination with Director MX and localconnection to allow Flash to drive the text-to-speech capabilities of the new Director Shockwave plugin. Sounds pretty interesting.