February 08, 2010

A common issue that crops up on the forum from time to time is leaving voicemails on an answering machine when an outbound IVR call is not picked up by a human. Many times, developers would write IVR test code to act on a callee type of “answeringmachine” and wonder why a voicemail was not left on their cell phone.

So, we typically suggest to developers to use the following IVR code:

<?php
header(”Content-type: text/xml”);
echo(”<?xml version=\”1.0\”?>\n”);
$calleetype = $_POST['callee_type'];
?>
<vxml version=”2.0″>
<form id=”mainmenu”>
<var name=”callee_type” expr=”‘<?= $calleetype ?>’”/>

<record cond=”callee_type==’answeringmachine’” finalsilence=”2000ms”/>
<block>
<prompt>
Hello! This is a reminder to take your medicine today.
</prompt>
</block>

</form>
</vxml>

From this IVR code, if the callee is an answering machine, the VoiceXML application initially goes to the <record> tag to account for the answering message that gets played at the beginning of a voicemail. Once that message gets played, the VoiceXML application then plays the prompt, “Hello! This is a reminder to take your medicine today”, which is the message that gets left on the voicemail.

However, one thing that IVR developers need to keep in mind is that callee type detection for outbound is 94% accurate. This means that every once in a while, the outbound system will mistake an answering machine for a human and vice versa. The consequence of this behavior is that a voicemail message may get cut off at the beginning or a message may not be left at all.

Thus, for applications that require a voicemail message be left on an answering machine 100% of the time, we suggest that the IVR developer repeat the message numerous times. For example:

<?php
header(”Content-type: text/xml”);
echo(”<?xml version=\”1.0\”?>\n”);
?>
<vxml version=”2.0″>
<property name=”inputmodes” value=”dtmf”/>

<form id=”message”>
<field name=”leavemsg”>
<grammar type=”application/x-jsgf” mode=”dtmf”>(0|1|2|3|4|5|6|7|8|9|”#”|”*”)</grammar>

<prompt>
Hello! This is an application from your hospital. Please press 1 to continue. Please remember to call the phone number listed in your e-mail to reserve your appointment. Hello! This is an application from your hospital. Please press 1 to continue. Please remember to call the phone number listed in your e-mail to reserve your appointment. Hello! This is an application from your hospital. Please press 1 to continue. Please remember to call the phone number listed in your e-mail to reserve your appointment. Hello! This is an application from your hospital. Please press 1 to continue. Please remember to call the phone number listed in your e-mail to reserve your appointment. Hello! This is an application from your hospital. Please press 1 to continue. Please remember to call the phone number listed in your e-mail to reserve your appointment.
</prompt>

<filled>
<prompt>
Here is a different message that should be played to a human.
</prompt>
<goto next=”#confirmtransfer”/>
</filled>

</field>
</form>

<form id=”confirmtransfer”>
<field name=”leavemsg”>
<grammar type=”application/x-jsgf” mode=”dtmf”>1</grammar>

<prompt>
Would you like to be tranferred? Press 1 for yes.
</prompt>

<filled>
<prompt>
Okay, please hold while we transfer you.
</prompt>
<goto next=”#maketransfer”/>
</filled>
</field>
</form>

<form id=”maketransfer”>
<transfer dest=”tel:+1XXXXXXXXXX”/>
</form>

</vxml>

From this IVR example, the outbound IVR call will leave a voicemail that keeps on repeating the prompt, “Hello! This is an application from your hospital. Please press 1 to continue. Please remember to call the phone number listed in your e-mail to reserve your appointment.” if no one picks up and enters 1 on their phone keypad.

If the IVR outbound call is picked up by a human and the human presses 1 on their phone keypad, then a different message will be played and the human will be prompted to enter 1 on their phone keypad if they want to be transferred.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Each week, we challenge Twilio developers to build applications in new categories through the Twilio Developer Contest.  We do this to encourage new use cases and also to help expand what you can imagine when it comes to voice communications.  Last week, we debuted our first Wordpress plugin: wp-click2call, which enables Wordpress users to embed a click to call widget in their blog with a single line of PHP code.

David-jones-contest-winner

Winner: Be Local by David Jones

Congratulations to David Jones, creator of Be Local, a Twilio + Salesforce mashup.  "BeLocal" is a Click-to-Talk application that enables you to reach your customers by phone, no matter where they are in North America, and display a local caller id.

Whether you want to empower your Salesforce and drive sales,
or just have convenient local calling to your friends, family, and colleagues, "Be Local" is an easy application to get you started.

Features:

  • * Displays local number so that the customer is more likely to take the call, and if they're not available at the moment, they're much more likely to call you back when they see it's a local number.  "
  • * Handles the customer's return call, routing it back to you, wherever you are located.
  • * Takes care of logging the details of both outgoing and incoming calls in Salesforce, so you can review them later, and generate sales reports.

How Be Local Works

Be-Local-screenshot
Users of "Be Local" purchase local number packages (e.g., Southern California) that include a set of local area codes and prefixes (NPA, NXX) in the desired area.  When placing a call, "Be Local" finds the best match to the customer number, or else defaults to a toll-free 877 number as the caller id.

With "Be Local" installed on your Salesforce account, just select any Contact, and beside the friendly "Be Local" telephone icon are displayed up to 4 telephone numbers (Work, Home, Mobile, Other).  Just click the one you want.  "Be Local" will find the best matching local number and place calls to both you and your Contact, ... and connect the two of you together.  "Be Local" gets your phone number, and your Contact's phone number, from the information you have already entered in Salesforce, so there's nothing for you to type.  Just one click, and you're connected.

Updates Coming Soon...

Be Local will soon be rolling out additional features:
  • Voice Mail
  • Sales Call Recording
  • Voice-to-Text transcriptions

all easily accessible right in Salesforce.

Customer Testimonial from Rich Rosen of FastCall411

The original idea for Be Local came from Richard Rosen, at FastCall411.com, and Be Local was designed and implemented by David Jones, at PairwiseAffinity.com

Just listen to what Rich Rosen, from FastCall411 has to say about "Be Local":

"I recently used the Maytag website to find a repairman and with several choices in Los Angeles I picked the local area code (323).  I was initially surprised that the repairman’s invoice had a 626 area code (Pasadena, CA) even though I have been in the call tracking business for several years. At the time I counted the second largest yellow page publisher as a call tracking client, but I didn’t immediately recognize the Market Expansion Line. Be Local is a great yellow pages tool that helps in areas like Los Angeles where we have lots of area codes in overlapping services areas."

-- Rich Rosen, FastCall411

David has won a Netbook, and some t-shirts for himself and his niece C.J. and nephew Alex (10 and 12 respectively) who provided marketing and moral support to him during development.  We will be announcing this week's contest category shortly, so stay tuned!  In the meantime, you can check out all the contest winners and applications since our contest launched almost a year ago.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


We've revamped our API Documentation. The static PDF has been replaced by interactive API documentation that includes a Developer Guide and Test Panel. Here are some highlights:

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


February 05, 2010

This month Entrepreneur Magazine is featuring Ifbyphone in an article entitled "Call Center In The Clouds". Here is a brief snippet:

"A modern call center, with interactive voice response systems to classify and route calls, is the ideal answer ,but it's too expensive for most entrepreneurial small businesses. Where can you find an alternative? In the clouds, of course."

 

Access the full Cloud Call Center article.

 

 

 

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


tropologo2010.pngIf you have been watching our @voxeo Twitter account, you may have noticed a few references to a “@tropo” account… yes, indeed, we’ve decided to give our Tropo.com cloud communications service its very own Twitter account at:

http://twitter.com/tropo

If you are a Twitter user, please do follow the Tropo account to keep up on the latest changes and advances with Tropo.com. While you are at it, you may want to check out the Tropo Blog if you haven’t done so in a while, as Adam, Jason and others have been adding lots of great tips and tutorials lately.

P.S. And if you aren’t following @voxeo on Twitter, please do! We’d love to stay in touch with you that way…

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


February 04, 2010

VoiceXML (VXML) is a standard programming language used to create automated dialogs between a caller and a computer.  Many companies use IVR to automate their most frequent inbound calls; however, IVR and VXML can handle complex outbound notifications and alerts as well.  By programming an outbound IVR application to integrate with a database, outbound IVR can collect important information from a caller and act on that data by providing customized messages tailored to communicate a specific notification to a callee.   Here are some examples of outbound IVR applications:

Payment Collections
Medical Reminders
Appointment Reminders
Emergency Notifications
Prescription Refills
Travel Updates

The uses for outbound IVR and VoiceXML are limitless.  We invite all developers to sign up for a free IVR demo account to try Plum’s outbound IVR systems.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


http://blogs.voxeo.com – This session discusses tradeoffs in deploying communications applications behind the firewall, with a hosted partner or through elastic mechanisms such as Amazon?s EC2. Moderated by Thomas Howe, this session was part of the Cloud Communications Summit at ITEXPO East 2010 on January 20, 2010, at the Miami Beach Convention Center in Miami Beach, Florida.

Participants:

  • Thomas Howe (Moderator), Light & Electric
  • Dan York, Director of Conversations, Voxeo
  • Evan Cooke, CTO, Twilio
  • Troy Davis, CEO, CloudVox

More information about Voxeo can be found at www.voxeo.com and blogs.voxeo.com.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


February 03, 2010

On Friday of last week we welcomed friends, family, customers, investors and other supporters (roommates, customers, vendors, etc) that have become a part of our community in the past year asince Twilio launched to the public in November 2007.  Together we shared food, drinks, and a champagne toast to an exciting 2010!

Here are some of the best pictures from the party, and you can see the rest of the set on Flickr.  Feel free to tag and comment to your heart's content!

Twilio Twilio Jason (Pebb.ly) & Adam Twilio Twilio

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Have you ever been on an IVR phone application where you’re asked to enter a string of digits (say, an identification number or social security number) and you had to wait for a couple of seconds before hearing an IVR response? Kinda annoying, right?

Well, you can use the awesome <property>, termmaxdigits, to solve this issue. Let’s take a look at a VoiceXML code example:

<?xml version=”1.0″?>
<vxml version=”2.0″>
<property name=”termmaxdigits” value=”true”/>
<property name=”interdigittimeout” value=”3s”/>
<form>
<field name=”social” type=”digits?length=9″>
<prompt>
Please enter your social security number.
</prompt>
<filled>
<prompt bargein=”false”>
You entered <value expr=”social”/>.
</prompt>
</filled>
<nomatch>
You did not enter a nine digit entry.
<reprompt/>
</nomatch>
<noinput>
You did not enter anything.
<reprompt/>
</noinput>
</field>
</form>
</vxml>

From this IVR example, by setting “termmaxdigits” to true, we can allow for no timeout as soon as the user has matched the maximum number of digits (in this case, 9). If the user enters 9  numbers, the behavior of the application immediately returns a response to the user. If the user entered less than 9 numbers, the application waits for 3 seconds from the “interdigittimeout” property and returns a <nomatch> after 3 seconds has passed with nothing inputted. If the user entered more than 9 numbers, the application returns just the first 9 digits that were entered by the user.

Using this practice in your IVR code will help improve the experience of IVR users as they would be able to proceed faster through your application.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Last week we challenged Twilio customers to a contest category with a twist.  Instead of building a Twilio application for a specific category, we asked developers to create screencasts with a maxiumum leth of 3 minutes that demonstrate how to build a Twilio application.

Justin Vaillancourt sis this week's contest winner with his screencast for Online Universal Product Code Lookup, where he shows viewers how to build a phone based application using Twilio that searches Google for a given UPC (universal product code) and returns the lowest cost available online for that product.

As Justin said in his submission, "47 lines of code, 3 minutes, truly amazing technology".  Thanks for your submission, and try the product by dialing: 1-866-572-5762.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


February 02, 2010

We recently created a new page on the Plum Voice site entitled “What is IVR?”   This page includes diagrams that illustrate how IVR can make a contact center more efficient.  It also includes a list of common IVR applications that include:

•    24×7 customer service assistants
•    conductors of telephone surveys
•    account administrators
•    tour guides
•    call center navigators
•    employee benefits processors
•    help desk assistants
•    automated tellers
•    timecard punch managers
•    notification and alert systems
•    work schedulers and task managers

For more information, please visit Plum’s web site at http://www.plumvoice.com/

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


According to the one and only tweet in his account, Delaware Governor Jack Markell will “officially” join the Twitterverse at an upcoming event on February 3rd.

Although I imagine the public relations potential of Governor Markell joining the scores of other federal, state and local officials on Twitter is not lost on his staff, if the Governor is serious about embracing Twitter it could open up a new way for citizens to engage and communicate with him.

So, as the Governor prepares to “activate” his Twitter account, it makes sense for the citizens and taxpayers he serves in Delaware (particularity those of us that tweet) to ask whether this will mean propaganda or engagement.

WonderTwit powers, activate!

The Governor’s first tweet doesn’t bode well (in my mind anyway) for those of us eager to see his new account used to engage citizens and encourage communication with taxpayers.
WonderTwit powers, activate!
I find the notion of “launching” a Twitter account that has already been created a bit odd. There is no way that I am aware of to create an “inactive” Twitter account – inactive accounts are those that Twitter considers abandoned.

By virtue of having a Twitter profile, the Governor’s account is indeed active. He could send tweets from it now, and could have sent tweets from it starting on the date it was first activated - June 19th, 2009 - a full 228 days prior to the date of this post.

However, even if the Governor has chosen not to tweet since last June, because his account is active anyone that uses Twitter can send a message directly to him by formatting a Tweet as a @reply (technically referred to as a “@mention” by Twitter).

I did this very thing not too long ago, sending a link I hoped the Governor would read before “officially” joining the Twitterverse.

Still waiting on a response…

Twitter engagement and communication

The @mention feature of Twitter is not one that can be turned off. Everyone has the ability to view tweets that @mention them by simply going to the proper tab on their Twitter home page (its worth noting that any one of the many Twitter clients can make checking, organizing and responding to @mentions quite easy).

It is this feature that has attracted people (like myself) interested in leveraging Twitter as a way to send messages directly to elected officials.

In early 2009, I develop a service called Hear Me Say This which uses IVR technology with Twitter to allow people to send recorded messages to members of Congress. Other people have taken this same approach to send messages directly to elected officials on Twitter using @mentions.

The critical issue for any elected official that uses Twitter is how they will handle tweets that @mention them. They are a potentially useful tool for citizens and activists because they can be sent directly to the official who owns the account (unless that official wants to fess up that someone is ghost tweeting for them). They can also be used to develop support for a cause or issue because friends and followers can retweet status messages (including those that @mention others).

Some elected officials may bank on the fact that responding directly to @mentions from their constituents can be portrayed as being unreasonable burdensome. One can certainly understand why the Governors of California or Michigan (both of whom are prolific tweeters) might be able to get away with not reposing to @mentions (for the record, I don’t know that they do).

However, most Delawareans have different expectations about personal interactions with their elected officials.

Only in Delaware…

Delaware’s small size, concentrated population and cordial political environment come together to create an atmosphere where it is not uncommon to bump into an elected official on the street, or at the gym, or in a store and engage them in a conversation.

Its not uncommon to bump into a Governor, a U.S. Senator or a Member of Congress while out for a jog (I once passed Congressman Mike Castle running at a park near my house), at the gym (I had a nice conversation with Senator Tom Carper between reps at the YMCA about the health care bill several weeks back) or at a gas station (I once stood in line with Joe Biden at a Greenville gas station).

Delaware isn’t a place where elected officials can get away with being insulated from citizens by surrounding themselves with an entourage or a group of handlers. People here aren’t surprised when they run into an elected official at the gas station or the corner store, and I think many expect to be able to interact with them.

So its only logical to ask whether this same type of interaction will work when Governor Markell officially “launches” his Twitter account.

It can work if the Governor decides (as many forward thinking politicians on Twitter already have) that using social networking services like Twitter will provide new opportunities for transparency and citizen contact.

Will the Governor respond to the following when he attends the upcoming Delaware Tweetup on February 3rd:

  • Does he intend to use his Twitter account personally (even if he isn’t the exclusive user of the account) as a way to make his administration more open, transparent and receptive to citizen communication?
  • Will he commit to responding to Twitter @mentions that appear to be from legitimate Twitter users, or from Delawareans that have an actual question, problem or complaint?

Whether or not Delaware’s somewhat unique brand of political interaction will work when our Governor starts tweeting is entirely up to him, and how he decides to use his newly “activated” Twitter account.

Unfortunately, I won’t be able to attend the event on February 3rd, but I sure would appreciate a response to my tweet.

a

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


February 01, 2010

The winner of last week's developer contest for Twilio screencasts will be announced shortly, but we didn't want to wait to tell you about this week's category: Click-to-Call Integration.

You've got until 11:59pm on Sunday, February 7th, to make your submission.  Be sure to visit the contest page for all the details, and submit here.  Let us know if you have any questions, and happy coding!

What is Click to Call?

Click-to-call enables your company to convert web traffic into direct communication over the phone, with just the click of a button.  A simple form on your webpage allows visitors to enter their phone number, and with the click of the "call" button their information is routed to agents who can then contact them to provide help, support, and other services.

Twilio makes it easy to implement and integrate click-to-call directly into your web application.  To learn more check out the Twilio How To: Click to Call for sample code

Click to Call Integrations in Action

At Wordcamp Boston earlier this month, we shared a wp-click2call, a new Wordpress plugin that makes it easy for Wordpress users to add click-to-call functionality to their blogs and websites.

Twilio wp-click2call Plugin Launches at Wordcamp Boston from Twilio on Vimeo.

Integrations to Consider

Integration with any platform is fair game, no matter how many other click-to-call integrations have been done on it (including Wordpress). If there is a piece of software you are using every day that you think would benefit from connecting users with a single call, consider adding click-to-call functionality.  Here are some ideas to get you started:

  • * Typepad
  • * Zendesk
  • * Twitter (see TweetToCall for an example) - maybe as a Firefox plugin?
  • * Salesforce
  • * Craiglist or Yelp (Firefox plugins?)

Bonus: Make a Screencast!

It's obviously not required, but we'd love to see you create a screencast explaining how to use your click-to-call integration. Think of it as a living, breathing FAQ. It's sure to grab the attention of your audience and is extremely helpful to visual learners. We will be releasing a screencast of how to use the wp-click2call plugin later this week.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Did you hear about our Dragon 201 Webinar last week?   Kristen Wylie led a terrific training focused on how to make Dragon even easier to use. Some of the topics that were covered during this session included the following:

- Advanced formatting: Word Properties and auto-formatting
- Creating and modifying custom commands
- Common Excel commands
- Working within “non-standard” applications using the Dictation Box
- Using Dragon with a digital voice recorder

 If you missed it, don't despair!  The replay is now available online here: 

 https://www1.gotomeeting.com/register/824324945

 Check it out!

 

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Many times on the forum I’ve seen developers use JSGF grammars in their IVR code when they should be using SRGS+XML and vice versa. Typically, for production IVR code, we use JSGF grammars for small-sized grammars and use SRGS+XML grammars for medium to large-sized grammars.

Why use JSGF for small-sized grammars over SRGS+XML? Because of the sheer verbosity that’s included with using SRGS+XML over JSGF. Let’s take a look at an IVR example.

Let’s say we wanted a VoiceXML grammar that captures a phone keypad entry from 1 to 5.

Here’s the JSGF version of that grammar:

<grammar type=”application/x-jsgf” mode=”dtmf”>
1|2|3|4|5
</grammar>

Pretty simple, huh? Now, let’s take a look at the SRGS+XML version of that grammar:

<grammar type=”application/srgs+xml” root=”ROOT” mode=”dtmf”>
<rule id=”ROOT”>
<one-of>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
</one-of>
</rule>
</grammar>

Wow, that’s a whole lot different. I mean, look at all those VoiceXML tags. And all we want to do is capture a one digit entry from the caller. Thus, for these small grammar situations, we want to use JSGF.

Now, let’s take a look at a more complicated example. Let’s say we want a grammar for pets, where if the caller says “Puppy” or “Dog”, the grammar captures “Dog”. If the user says “Cat”, “Kitten”, and “Kitty”, the grammar captures “Cat”. Lastly, if the user says “Turtle” or “Tortoise”, the grammar captures “Turtle”.

Here’s the JSGF version of that grammar:

<grammar type=”application/x-jsgf” mode=”voice”>
(
((Puppy | Dog) {Dog}) |
((Cat | Kitten | Kitty) {Cat}) |
((Turtle | Tortoise) {Turtle})
)
</grammar>

Here’s the SRGS+XML version of that grammar:

<grammar type=”application/srgs+xml” root=”ROOT” mode=”voice”>
<rule id=”ROOT”>
<one-of>
<item>Dog <tag>pet=’Dog’</tag> </item>
<item>Puppy <tag>pet=’Dog’</tag> </item>
<item>Cat <tag>pet=’Cat’</tag> </item>
<item>Kitten <tag>pet=’Cat’</tag> </item>
<item>Kitty <tag>pet=’Cat’</tag> </item>
<item>Turtle <tag>pet=’Turtle’</tag> </item>
<item>Tortoise <tag>pet=’Turtle’</tag> </item>
</one-of>
</rule>
</grammar>

In this case, although the SRGS+XML version of this grammar looks more wordy in this example, it will perform better than its JSGF counterpart due to less processing/pre-parsing during the startup of the application.

Hope this example helps you developers out there who’ve had questions on when to choose JSGF or SRGS+XML format for your grammar.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Two weeks ago, Jason Goecke, Jose De Castro and myself (Dan York) were down in Miami Beach, Florida, to speak at ITEXPO and specifically the “Cloud Communications Summit”. Pictures I took at that event of panels we were on are now available in our Flickr stream or by clicking the image below:

ITEXPO-Voxeo-East-2010-flickrset.png

P.S. Thanks to Jason Goecke for taking the pictures of my panel (with my camera), since I couldn’t have easily accomplished that feat and also been on the panel. :-)

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Cool news from our Automotive team today!  Take a look at Rebecca's post below...

Power of Dragon is Coming Soon to a Car near You – Announcing Nuance Voice Control Automotive

Today we had a very exciting announcement from our automotive business that we thought would be appropriate to share with our Dragon Mobile Apps users – we’re bringing the power of Dragon to the car! Today we unveiled Nuance Voice Control Automotive, an innovative platform that is designed for auto manufacturers to bring voice-enabled connected services to drivers around the world – and it’s based on the same core speech recognition technology that you take advantage of in Dragon NaturallySpeaking, Dragon Dictation and Dragon Search.   So what can you do with Nuance Voice Control Automotive?  Lots of amazing tasks, including:
  • SMS text messaging and email capabilities, allowing drivers to simply speak and send messages while keeping their hands on the wheel and eyes on the road;
  • Interaction with social networks such as Twitter and Facebook;
  • News, weather and traffic updates and the latest sports scores and stock prices;
  • Movie theatre locations, film listings and times;
  • Dining options in current area or point of destination; and,
  • Price comparisons for hotels, fuel, etc.
We’re a mobile society, and more and more we find ourselves connected at all times.  But it’s important to ensure a safer route to staying connected behind the wheel – that’s where speech technology becomes so valuable and why we’ve worked to bring this innovative platform to auto manufacturers.  We expect the first cars with Nuance Voice Control Automotive to start shipping next year – so stay tuned! 

REBECCA PAQUETTE, Corporate Communications Manager, Mobile

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Exploring Apps In The Cloud – Today the industry is buzzing about cloud computing and pushing applications out into the network cloud. Google has brought out their AppEngine platform while Amazon offers their EC2 and S3 services and Microsoft and others prepare their own offerings. In this session, attendees will learn about what is involved with developing voice applications on cloud computing platforms. What options are out there? What do you need to look for in a platform? How can you get started? The session will include demonstrations and offer insight and real world examples of how cloud-based solutions are impacting the market today, challenges and opportunities, as well as what the future holds.

Participants:

  • David H. Yedwab (Moderator), Partner, Market Strategy & Analytics Partners
  • Dan York, Director of Conversations, Voxeo
  • Irv Shapiro, CEO, Ifbyphone
  • Charles Studt, Vice President of Product Management and Development, IntelePeer
  • Praful Shah, VP of Strategy, RingCentral

More information about Voxeo can be found at www.voxeo.com and blogs.voxeo.com.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


January 30, 2010

We’re putting the finishing touches on the Tropo Developer Challenge, a way you can show off your Tropo applications and have the chance to win some fun stuff throughout the year. Got an app that you’ve been working on? Polish it up and get it ready for entry into the Developer Challenge. Rules and details will be announced shortly.

We hear Apple has some sort of new product. Want one? Good, because the first prize we’ll be giving out is an Apple iPad.

Don’t have a Tropo app yet? Create an account and get started. Tropo is 100% free for developer use. Build your app, test it as long as you need to, and you don’t pay a thing until you’re ready to move to production. No messy developer credits to keep track of.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


January 29, 2010

VoiceCon Orlando 2010 will be held March 22-25, 2010 at the Gaylord Palms Resort & Convention Center in sunny Orlando, Florida (where Voxeo headquarters is also located).  We will not be exhibiting, however several Voxeons including Dan York, Director of Conversations will be in attendance.  Dan will be participating in two sessions:

March 22, 2010 – 3:15 pm

Dan York (speaker): Securing Communications

March 24, 2010 – 3:00 pm

Dan York (panelist): Presence: Preferences and Rules Drive Communications Effectiveness

If you would like to set up a meeting at the conference or at the Voxeo office (our Barista makes the best cup of joe in Orlando!) please email: Ananda Cheddie.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Another of the multi-modal features we added to Tropo, is the ability to capture the first text a user send via SMS or Instant Message. Previously, when a user would send a message to an SMS/IM application you had written, you had no way to capture that first message. Instead you would have to send a prompt/ask back to the user to start receiving input, having lost that first message.

With the new release, this is no longer the case. With the hosted API, the initial text message is stored in the call object available at the start of your script. You may obtain the initial text string as follows (depending on the language):

$currentCall.initialText

# or

currentCall.initialText

If you are using the new Tropo Web API, then you may find the ‘initialText’ value in the session JSON string you first receive with each new session, as follows:

{ "session": { "initialText": "Hello, I would like to ask you about your app." } }

Enjoy.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google



After fifteen years in speech, language and Internet technology, I’m about to make a big career shift. Three weeks from now,  on February 22, I will join the ranks of the TeleAtlas/TomTom engineering force in the beautiful city of Ghent, on a permanent, full-time basis. My task: contribute to various process automation and improvement initiatives.

The reasons for this change are manifold, as they always are.

Firstly, I was craving to work (again) in an environment that blends innovation culture with a clear international dimension. Over the last five and a half years, I have had the chance to work on a number of international opportunities, ranging from the Beavis and Butthead Hotline to a project for a speaker verification company in Ireland. But in between, and all too often, I had the feeling to be missing out on much of the professional fun. This situation could not last forever.

Secondly, every now and then it’s good to enter a domain (geographical data management and applications) that is both new enough to be intellectually stimulating, and familiar enough to be digestible in a reasonably short time-frame. I’m very much looking forward to applying software development automation, process improvement and/or machine learning techniques in this new setting.

Thirdly, it will be great to have real colleagues again. However hospitable a customer’s working environment may be,  a freelancer fundamentally stays an outsider; however amicable relations with partner companies may be, there generally is no Big Plan or Strategy guiding your actions in a direction that goes further than your next assignment.

It’s not that we haven’t tried, as an industry. Since 2005, the Speech Technology Workgroup of ContactCentres.be have put a lot of effort into getting the speech technology business (back) on track in the Belgian telco and call center world. Our seminars in Diegem and Brussels have featured a number of local success stories. But the fact remains that the adoption of speech technology in this country has been slower than in the Anglo-Saxon world, Germany or France. A bizarre blend of overconfidence and lack of ambition from the major local players is one reason. Another one is the refusal of government agencies and state-run companies to programmatically open up public data for the innovative developer community (contrast this with data.gov and data.gov.uk).

Don’t get me wrong:  our industry pipeline does have a few high-profile speech projects coming up. But they won’t be for me anymore. It’s time to (let) go.

My life as a freelancer has brought me to some interesting (read: sunny) places like Silicon Valley, Mallorca and Cannes. It has also put me in contact with a number of smart and driven people who have made a difference to me. Special thanks, in no particular order, go out to Alain, Jean-Marc, Vincent, Peter, Vincent, Jon, David, Myriam and Patrick. We’ll be in touch.

And now for something completely different.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


January 28, 2010

A feature we recently added to Tropo is the ability to capture free-form text from a user when using one of the messaging channels, such as SMS or Instant Messaging. Previously it was required that you prompt the user for input based on a grammar:

answer
ask 'Please enter your ten digit account number.', { :choices => '[10 DIGITS]', :repeat      => 3 }
hangup

This restricted the ability to capture details that are better served by free-form text, such as an address, without having to build complex grammars which are needed when doing voice recognition. While you may still use the power of grammars for voice and text, you may now obtain free-form text by passing ‘[ANY]‘ to the choices option as follows:

answer
result = ask 'Please enter your street address.',  { :choices => '[ANY]', :repeat      => 3 }
log result.value
hangup

Sending an SMS or Instant Message to the above script will result in this line in your log based on the user’s input (in this case ‘1234 Brewster St’):

00122   	00-1   	11:40:04 PM   	Call[14157044517->13314659919] : 1234 Brewer St

This scenario will work with both the hosted API and the Tropo Web API. Enjoy!

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


It took a little while for us to announce the contest winners from last week's Twilio + Twitter mashup challenge.  So this week, instead of picking a category of applications and leaving you with just over 72 hours to write up the code, we're giving this week's contest a twist.

If you've been reading our blog and surfing our website, you might have noticed that we're hard at work producing screencasts and videos as another way to explain new Twilio features and demonstrate applications.  But why should we have all the fun?

Make a Video - Win a Flipcam and Screenflow

So now it's your turn.  You have until 11:59pm this Sunday, January 31st, to submit your video demonstrating how to build a Twilio app.  The only rules are that it must be uploaded on a publicly accessible website, and it must be no longer than 3 minutes.

Tips for a Good Screencast

I recently gave a 5 minute Ignite talk at Wordcamp Boston about the art of making great screencasts.  If you want to watch the video, it is embedded below, but here are the main points:

  • pick a topic that can fit in 3 minutes
  • draw a storyboard
  • do a dry run
  • go for continuous takes that don't require editing
  • add voice overs
  • distribute online for free (YouTube, Vimeo, etc.)

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Update: You might have noticed we haven't announced a contest category for this week yet... stay tuned, we are going to have a "mini category" for now through Sunday.

For the past two weeks, we've challenged Twilio developers to mash up Twilio and Twitter to see how people will combine the real-time web and cloud communications.  Last week, the prize went to Wayne Dyck at the Washington State Department of Transportation for their Twitter direct message service which makes called to Twitter users with ferry and border crossing wait times.

As so often happens, we get many impressive submissions for our weekly developer contest an as the user base for Twilio continues to grow so does the breadth of ideas. When we see more than one application that is so good we can't talk about anything else to stop trying to convince the others it should win, then we give two prizes.  And that's what happened this week.  Without further ado, here are the TWO winners of last week's Twilio and Twitter mashup contest.

Group Call by Tim Lytle

Tim-lytle-netbook-twitter-mashupGroupCall allows twitter users to host and manage a group conference call with a few simple clicks. Designed for group instruction, where one user speaks and the audience comments/participates via twitter. The call owners can unmute other participants if desired.

Give Group Call a Try

1. Visit: http://groupcall.timlytle.net
2. Login with Twitter
3. Click the 'host a call' link, then follow directions to join the call.
4. Send the join link to other users.
5. Refresh to update user list/twitter feed (sorry, no nice AJAX yet)
6. Mute/Unmute other callers.
7. Click end call link when you're done.

Music Monday by Mike Ivanov

Mike-ivanov-twitter-mashup-netbookMusic Monday is the long-running tradition of posting your favorite songs on Twitter so that others can discover interesting new music.  My app lets you listen to tweets that contain MP3s.  You can skip songs you don't like so much, and it keeps a list of everything that was played and what you liked.

When you go to the website, put in your phone number for a list of everything you heard.  It's a fun way to kill a few minutes while discovering new music.  You may hate some songs and love others, but you never know what you will hear!

Give Music Monday a Try

First, call (866) 583-6913 and enter PIN 3969-6376.  Listen to some tunes and see if you like any of them.  After you hang up, go to http://mivanov.info/musicmonday and put in the phone number from which you called.  You will get a list of all the tweets and songs you heard with links to the original tweets on Twitter.  From there you can follow, retweet, and reply as usual.

-----

Learn more about our weekly developer contest, and how you could win a Netbook, by visiting our contests page.  We announce a new contest category every Monday, and submissions are due by 11:59pm on the following Sunday.  Email help@twilio.com if you have suggestions for contest categories, or any ideas for how we can keep this contest fun and exciting.  Thanks!

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


There has been a couple of times on the developer forum where I’ve seen users put builtin and inline grammars all within the same field of their IVR code. A common misconception that users don’t seem to understand is that when you use a built-in grammar within the VoiceXML, you’re secretly telling your field specifically how you want you callers to input the data.

For example, when you add this into your IVR code:

<field name=”phone” type=”digits?length=10″>

this built-in grammar, digits?length=10, allows for the user to only enter 10 digits either by voice or by DTMF (phone keypad entries).

However, if you were to add this inline grammar right underneath that line of code:

<grammar mode=”dtmf” type=”application/x-jsgf”>(1|2|3|4|5|6|7|8|9|0)+ </grammar>

this VoiceXML grammar allows for the user to enter multiple digits (with no restriction on the number of digits that can be entered) by DTMF only.

So, if you’re the IVR platform, what do you do? You have two different VoiceXML grammars giving you different instructions on how to capture data from the user. Because of this, inconsistent behavior can occur for your phone application.

To avoid this hazard, you should use either a stand-alone built-in grammar or a stand-alone inline grammar.

Just for your knowledge, this specific example was based on a user who was looking to only capture 10 digits, but by DTMF only. To resolve this, we can do:

<grammar src=”builtin:dtmf/digits?length=10″/>

This grammar allows only up to 10 digits and this portion, builtin:dtmf, only allows for DTMF only.

Hope this helps you developers out there who may have some questions on implementing VoiceXML grammars.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


January 27, 2010

Plum recently partnered with Confirmit to offer IVR surveys to contact centers, or any company in need of an IVR survey solution.  Confirmit provides services and products for Market Research (MR) and Enterprise Feedback Management (EFM).  Their Reportal tool enhances Plum’s IVR survey offering by adding considerable data analysis functionality.

Check out Plum’s company listing on Confimit’s web site at http://www.confirmit-marketplace.com/members/plum_voice/default.asp

Our recent joint press release can be found at http://www.plumvoice.com/about/press

Confimit’s web site is located at http://www.confirmit.com/

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Voxeo has been selected as the as the single communications application platform for PM3. They needed a platform that could provide cost-competitive worldwide coverage using XML hosting, deliver proven reliability, conform to undustry standards, and provide exceptional support. PM3 selected Voxeo after evaluating the major platforms in the market.

PM3 will now be able to leverage Voxeo’s global hosting network to more easily deliver voice, SMS and IM solutions around the globe.

Read the full story here.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Voxeo will exhibit at CallCenter World, February 08-11, 2010 in the Estrel Convention Center in Berlin.

Visit Voxeo at booth 1B2 and learn how we help businesses of all industries and sizes to create and manage communication solutions that improve service, increase loyalty, lower costs and drive new revenue.

Get a free exhibition pass and schedule a meeting with Voxeo. Just send us an email emeamarketing@voxeo.com.

Looking forward to see you in Berlin.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


This is a guest post by Mark Silverberg (@skram on Twitter). Mark acted as a guinea pig for the Tropo Web API and Ruby library in the weeks leading up to its release last week. He wrote a sample app mashing up Twitter and voice and provided this overview and code walk through.

With Tropo’s newly released web API, developers can create unified communications (telephone, cellular text message, instant message (Jabber, AIM, Yahoo, MSN) applications using traditional document-based web development flow. The code gets stored on the developer’s choice of host and is referenced each time a call comes in (or is initiated using the Session API for outgoing phone calls). This additional approach to creating voice and IM-enabled applications allows developers to integrate Tropo code into their existing and new applications seamlessly, using their own hosting and servers. (The existing, hosted Tropo is still available.)

Here’s a twitter-by-phone example that uses the standard Twitter RSS feed for content, Sinatra as a web daemon (you could use rails or something else too) and the Tropo web (JSON) API. Since Tropo code is stored and run on the server of your choice, you can use any gems, custom classes, etc. to connect your data and content with phones and chat clients globally and on your own terms.

Instead of being a flat-file script with loops to validate input and drive the call flow with blocks of scripting logic, the JSON API with this shiny ruby gem allows for a document-based approach – like traditional web development. You can think of http://example.com/index.json, the URL you set as your Tropo App URL, as your website’s landing page. It is the first page/document ‘hit’ when a user calls your application.

tweet flow chart

Once the instructions in that document are finished, one of two Tropo API events are triggered (more about the code for this below): continue or incomplete. The events are triggered after the requested input is received (or not received). Example: If we ask for someone’s zip code, as soon as they say it, we continue to the specified next document. It’s as if, by saying, entering, or texting 5 numbers, the user has pressed the “Submit” button and they continue through your app to hear the weather, traffic conditions, tweets in proximity, what-have-you.

Making it all work together

Note, you could even integrate this right into your existing Sinatra/Rails/etc. web app. Just add a responds_to or document view for index.json, and put your Tropo code right in there. In the context of this Twitter example, I could have index.html be a HTML form asking for how many tweets the user would like to see at once, process.html be an intermediary view, and then page_of_tweets.html be, like it is in our voice application, a page-view of the number of tweets they requested. Your HTML page would have a “next” button for page, unlike the code published here which automatically reads the next page.

Before diving into the code (the version described below is in full here or the latest copy is available on GitHub), you may want to try this out for yourself. Call the @voxeo tweets by phone line at (253) 217-4272 or with Skype at +99000936 9991429531 for a demo. You can also create a Tropo app and point it to wherever you have hosted this web service. We deployed on Heroku for our demo, but you can use any Ruby web hosting you like.

As you’ll see, this code sample presents some number of tweets per ‘page’, defined by the caller. It will continue on to infinity, or however many tweets are available. As you step through the code, it may also be helpful to take a look at the more basic examples included with the Ruby library.

The call flow for this web service is quite simple. A call comes in and index.json is rendered.

post '/index.json' do

Sessions and Variables (twitter.rb, lines 5-9)

v = Tropo::Generator.parse request.env["rack.input"].read
session[:id] = v[:session][:id]
session[:caller] = v[:session][:from]
session[:user] = "voxeo"
session[:page] = 1  # This shouldn't be tinkered with unless you don't want the most recent tweets to be heard.

At one fell swoop, this web route collects the information Tropo sent the web service (like session ID, caller information, and timestamp) and stores relevant information into a session object Sinatra provides us for variable storage which will last the duration of the session. For this application, we’re storing the call_id and caller information information for debugging purposes. We also store the user we want to hear the tweets for here. Sessions are a convenient way to store not only caller information, but data we will want to use later in the call flow such as the page number of tweets we are reading.

Events (lines 11-14)

t.on :event => 'continue', :next => '/process.json'
t.on :event => 'error', :next => '/error.json'     # For fatal programming errors. Log some details so we can fix it
t.on :event => 'hangup', :next => '/hangup.json'   # When a user hangs or call is done. We will want to log some details.
t.on :event => 'incomplete', :next => '/incomplete.json'

On line 10, we initiate our Tropo::Generator object to which will append what we want Tropo to do for us. Lines 11-14 define our events for our index.json route. These tell Tropo what to do next, if there’s an error, if the user hangs up, or if the user doesn’t do what we expect them to do. As you’ll see at the beginning of the other routes, we want the same routes of error.json and hangup.json to be triggered for their respective events, so we repeat those lines.

Say & Ask (lines 15-22)

t.say "You have reached @#{session[:user]}'s tweets-by-phone."

t.ask :name => 'count', :bargein => true, :timeout => 7, :required => true, :attempts => 4,
    :say => [{:event => "timeout", :value => "Sorry, I did not hear anything."},
             {:event => "nomatch:1 nomatch:2 nomatch:3", :value => "That wasn't a one digit number."},
             {:value => "How many tweets do you want to listen to at once? Enter or say a one digit number."},
             {:event => "nomatch:3", :value => "This is your last attempt. Watch it."}],
              :choices => { :value => "[1 DIGITS]"}

Line 22 is the first thing the user hears. We welcome to our app and dynamically (because we stored the twitter username into our session hash) let them know whose tweets they are about to hear. Lines 17-22 are all for one Tropo action: ask. This block of code, which will be latter referenced as the action “count” prompts the user for how many tweets they will want to hear per proverbial page. It may seem weird that the actual question is sandwiched by events within the :say => [] block, but it’s actually very intuitive and conversation-like. When an event is matched (for example timeout, nomatch, or nomatch:#), the corresponding value will be said to the user before or after the question being posed. In this example, we sternly warn the user after 3 unmatchable responses that it’s their last chance after the question is repeated.

Continue: If the user inputs (here, they can speak a one-digit number or enter it using their telephone keypad) a valid answer to our question, the continue event will be triggered and the call continues.

Incomplete: If the user fails all four attempts we allotted them, they are transferred to the “incomplete” event we defined which in this case notifies them of what happened and terminates the call. Because we defined the hangup event again inside of incomplete.json, hangup.json (lines 69-74) will be executed once the call is terminated and Sinatra will print the information on the screen. For actual applications, this is where you’d probably want to log information for historical reporting and/or billing fun.

process.json (lines 40-49)

post '/process.json' do
  v = Tropo::Generator.parse request.env["rack.input"].read
  t = Tropo::Generator.new
    t.on  :event => 'error', :next => '/error.json'     # For fatal programming errors. Log some details so we can fix it
    t.on  :event => 'hangup', :next => '/hangup.json'   # When a user hangs or call is done. We will want to log some details.
    t.on  :event => 'continue', :next => '/say_page_of_tweets.json'
    session[:count] = v[:result][:actions][:count][:value]
    # t.say "@#{session[:user]} tweets coming right up!"
  t.response <br />
end

For calls that give us a one-digit number for the question we asked on line 17, we store that number into our session hash and send them to the next document which will read the tweets they requested.

say_page_of_tweets.json (lines 51-67)

post '/say_page_of_tweets.json' do
  t = Tropo::Generator.new
    t.on  :event => 'error', :next => '/error.json'     # For fatal programming errors. Log some details so we can fix it
    t.on  :event => 'hangup', :next => '/hangup.json'   # When a user hangs or call is done. We will want to log some details.
    t.on  :event => 'continue', :next => '/say_page_of_tweets.json'
    t.say "I'm about to read you the"
    t.say say_as_ordinal(session[:page])
    t.say " #{session[:count]} tweets by #{session[:user]}."
    source = "http://twitter.com/statuses/user_timeline/#{session[:user]}.rss?count=#{session[:count]}&page=#{session[:page]}"
    rss = REXML::Document.new(open(source).read).root
    rss.root.elements.each("channel/item") { |element|
      t.say "Tweet from about #{Time.parse(element.get_text('pubDate').to_s).to_pretty}"
      t.say reformat_uris(element.get_text('title').to_s) + "," # comma for extra pause between tweets.
    }
    session[:page] += 1
  t.response
end

This is where our application loops and reads the requested tweets one-by-one. This is the moment the session hash has been waiting for. We use the information we collected in index.json and process.json to report the requested information to the user.

Lines 61 through 64 is where we render the Twitter RSS feed we requested in line 60, and go through each tweet received to read the age of the tweet, followed by its content. As you can see on lines 57, 62, and 63, we use helpers whose code can be found in the accompanying goodies.rb file to present the data in a more user-friendly way.

At the end of each execution of say_page_of_tweets.json, as seen on line 65, we increment the session variable for page, so the next X-number of tweets are read when the action is re-executed (because, you guessed it, line 55 tells Tropo to execute that same document again).

Goodies.rb

As you can see on the first line of the script, we require()’d the ruby file goodies.rb. In it, I’ve provided some helpful methods for this particular app. I simply put them in a separate file so our main file is cleaner.

reformat_uris() removes the http[s]:// from URLs found in twitter status updates. We need to do this because Tropo handily (though not in this case) tries to stream URLs as sound files. This is very helpful when you want to play a MP3 file over the phone, but if you provide it a regular HTML site, it’ll synthesize it into white-noise.

say_as_ordinal() returns a string of VoiceXML. Tropo is built upon Voxeo’s highly tested infrastructure which, until now, has been mostly used for power and good of VoiceXML. Thankfully to use, Tropo stays true to its roots and allows us to execute VoiceXML. It can do a lot of handy things like turn “1″ into “first”, saving us from coding that conversion ourself and making sure it scales and is in correct English grammar.

to_pretty() is similar to the DateTime helper time_ago_in_words() available to Rails users. I found this method addition for the Ruby Time class and like it. As you can see, it’s very easy to customize too.

Conclusion

As you can see, this is a fairly basic application of a voice technology but it could be vastly expanded to become exponentially more feature-rich. For example, we could ask the user for more input such as giving them a choice of which twitter username to query, much more input validation, and more.

Tropo is backed by Voxeo’s extreme support. Check out Tropo’s contact page for all the ways to get help with Tropo and making the web applications you already have, and the ones you are only just now dreaming up, come alive with voice and IM-technology.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


If you would like to learn more about our acquisition of the ClackPoint realtime collaboration platform, you may enjoy this video interview I did with ClackPoint found Neil Stratford. Neil explains what ClackPoint is all about, how it works, what people can do with it and a bit about what is next…

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


If you are wondering what is going on with all these “Voxeo Speaks” videos appearing in our Voxeo Talks blog, here’s the deal – last week at ITEXPO I (Dan York) recorded several of the sessions in Thomas Howe’s Cloud Communications Summit with the intent of making them available through our voxeo.blip.tv channel. I have to use blip.tv because the videos are longer than the 10 minutes allowed by YouTube. But then, of course, I realized that to publish them to that channel in the way that I am currently using the channel, I needed to number them… and perhaps it’s just me, but I wanted them to be in rough chronological order with the other conference videos I have recorded.

So… I am basically “flushing the queue”, as it were, and getting some of the video I’ve had around for a few months up online. I’m almost there, but if you have worked with video you know that it takes a while to render. Over the next few days I should be all caught up.

I hope you enjoy the presentations – and yes, the lighting was horrible on that WPMU presentation… (well, actually the brightness of the slides caused the camera to reduce the exposure level).

P.S. And no, I don’t know why precisely I didn’t spin up a separate “blog” on the site specifically to house these videos. I still could… but now these are here in the Voxeo Talks stream. My thinking really was that people can subscribe directly to the blip.tv channel – and that we won’t have a zillion of these videos over the course of a year. I may revisit that thinking, though.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


January 26, 2010

At VON 2009 in Miami Beach, FL, Voxeo’s Dan York joined Thomas Howe and Suresh Bhandarkar to discuss the topic of applications and “app stores”. The abstract of the session was: The Apple App Store has proven the value of embracing third-party application developers to bring innovative, sticky and useful applications to subscribers. But how can service providers leverage the idea? To date device manufacturers like Research in Motion Ltd. and Palm Inc., or platform providers like Google Inc. and Broadsoft Corp. have led the applications charge-and reaped the benefits. This session will examine where carriers fit into the value chain ? and how they can build viable ecosystems of their own. … although Dan and Thomas took it in different directions in a lively and spirited discussion. More info about Voxeo can be found at www.voxeo.com and blogs.voxeo.com.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Have you ever tried experimenting with the different TTS (Text-to-Speech) engines (AT&T Natural Voices, Cepstral, Nuance Realspeak) and finding that each engine behaves differently with your IVR (Interactive Voice Response) code?

Well, that’s because each engine DOES behave differently!

Let’s take a look at a specific IVR example using a Spanish TTS voice for each of the different TTS engines.

For AT&T Natural Voices:

<?xml version=”1.0″ encoding=”latin-1″?>
<vxml version=”2.0″>
<form>
<block>
<prompt>
<voice name=”rosa”>
Hola. Su sombrero es muy grande.
</voice>
</prompt>
</block>
</form>
</vxml>

For Cepstral:

<?xml version=”1.0″ encoding=”latin-1″?>
<vxml version=”2.0″>
<form>
<block>
<prompt>
<voice name=”Marta”>
Hola. Su sombrero es muy grande.
</voice>
</prompt>
</block>
</form>
</vxml>

For Nuance Realspeak:

<?xml version=”1.0″ encoding=”latin-1″?>
<vxml version=”2.0″>
<form>
<block>
<prompt>
<speak xml:lang=”es-MX”><voice name=”Paulina” gender=”female”>
Hola. Su sombrero es muy grande.
</voice></speak>
</prompt>
</block>
</form>
</vxml>

One of these things is DEFINITELY not like the other. Nuance Realspeak has to be implemented in this manner in order to get consistent behavior for this prompt. However, AT&T Natural Voices and Cepstral do not need these extra tags.

So, the next time you’re implementing your IVR code and using a foreign language TTS voice, please be mindful of these inconsistencies that exist amongst the different TTS engines.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


As all you Speech-Heads probably know, when it comes to product testing my Speech-Brother Eric B. was always the go-to-guy here at Speech Tech Blog.  In his heyday, Eric B. would be testing five, six, seven speechy products every week, writing up reports, tuning, jotting down notes, talking to computers, etc. Well, in his absence, I [...]

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


http://blogs.voxeo.com/ett What is “VoiceXML 3″ all about? Why do we need a new version? What will change for VXML developers? What is the status of the VXML 3 specification? To dive into those topics, host Dan York interviewed Dan Burnett, Director of Speech Technologies for Voxeo and also the lead editor of the VoiceXML 3 specification for the World Wide Web Consortium (W3C).

To view the latest VoiceXML 3 specification and learn more about the W3C's voice activity, visit www.w3.org/Voice.

If you enjoyed this show, please consider one (or more) of these options:

Thank you.

This Voxeo podcast can be found on the web at http://blogs.voxeo.com/ett. If you have comments or feedback about this show, you can either leave comments here on the show blog site or email Dan York

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


At the beginning of 2010 a batch of new startups are getting underway in the Y Combinator program and we'd love to see them using Twilio. 

Last May we made an offer to Y Combinator companies to credit their Twilio accounts with $133.70 to use towards building their business, and we're doing it again now.  If you're a Y Combinator company and you'd like to claim your credit, just send us am email from your founders@ email address to help@twilio.com.

To learn more about Y Combinator and the companies that are a part of it, check out their blog, and applications are still open for Summer 2010 cycle.

Y Combinator Companies That Are Live

The ones that are currently launched (per the Y Combinator website) are: Reddit, Loopt, ClickFacts, Snipshot, Inkling Markets, Wufoo, Thinkature, JamGlue, Scribd, Weebly, Virtualmin, Buxfer, Octopart, Heysan, Justin.TV, OMGPOP, Xobni, Zecter, Adpinion, Fuzzwich, Bountii, Songkick, Auctomatic, Disqus, Splashup, Draftmix, Etherpad, Webmynd, RescueTime, Heroku, Tipjoy, Addmired, Socialbrowse, Wundrbar, Chatterous, Mixwit, Snaptalent, Clickpass, Insoshi, MightyQuiz, 280 North, Dropbox, Posterous, Anyvite, TicketStumbler, PopCuts, Ididwork, Startuply, Picwing, CO2Stats, PollEverywhere, Backtype, ContestMachine, Frogmetrics, ZumoDrive, Heyzap, FathomDB, Foodoro, Divvyshot, Echodio, Cloudkick, AirBnb, TheSixtyOne, Vidly, Voxli, Bump, RentHop, Listia, FanChatter, HighlightCam, FlightCaster, Directed Edge, RethinkDB, Olark, DailyBooth, Mixpanel, and WakeMate.

Bookmark this post:
Ma.gnolia DiggIt! Del.icio.us Blinklist Yahoo Furl Technorati Simpy Spurl Reddit Google


Last updated: February 09, 2010 12:01 AM All times are UTC.
Powered by: Planet

Speech Connection and Logos are Trademark of Nu Echo Inc. Copyright 2006-2008.