The Future of Morse Code

Reach out to 838-66-MORSE

Apr 01, 2019

Do you run a fleet of submarines somewhere in the Atlantic Ocean? In this day and age of WebRTC and the ability to reach across the globe, people tend to forget how far we've come in communications. 


Not here at SignalWire! As we spend each and every day building the future of telecom we like to look back and see how they did it in the good old days.

With that in mind, and in order to facilitate communications with submariners across the globe, SignalWire is proud to announce the release of a new TTS voice - Morse Code

Starting right now you can write LāML or RELAY applications that can speak using Morse code. Send messages to your captains in the Laurentian abyss!  Like the telegraph operators of yore, you too can feel the thrill of sending messages all over the globe at the blazing speed of 35 words per minute! 

We've set up a little demonstration for anyone interested; reach out to 838-66-MORSE. 

If you are a member of the US Navy or a friendly foreign service, don't hesitate to reach out anytime for a more in-depth demonstration.


838-66-MORSE is powered by LāML Bins, a serverless way to run your LāML documents.  As a way to help you get started, here's the code to form your own ASR-->Morse interface. We use the Say, Gather, and Redirect verbs and uses a bit more advanced functionality by incorporating SSML and a little Mustache templating.


1. Welcome to Morse (https://morsecode.signalwire.c...):

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say>
    <break strength="x-weak" time="200ms"/>
    <prosody pitch="+10%">In this day and age, some people forget where they came from. But not us here at Signal-Wire!</prosody> 
    <break strength="x-weak" time="300ms"/>
  </Say>
  <Say>
    <prosody pitch="+10%">To celebrate our heritage, let's kick this party <emphasis level="moderate">old-school style</emphasis> for a few minutes with some mother<say-as interpret-as="expletive">fricking</say-as> morse code.</prosody>
  </Say>
  <Redirect>https://morsecode.signalwire.com/laml-bins/d0234d15-6f4a-4f99-a0e6-9d6cbbf412cb</Redirect>
</Response>


2. Let's get a name, shall we?

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Gather input="speech" speechTimeout="auto" action="https://morsecode.signalwire.com/laml-bins/e17a3ac4-fe21-427c-8796-e8ddadd98374">
    <Say><break strength="x-weak" time="200ms"/><prosody pitch="+10%">Tell me: what's your name?</prosody></Say>
  </Gather>
</Response>


3. Let's play your Name in Morse (with some Mustache templating to grab the speech results)!

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say><prosody pitch="+10%">So, {{SpeechResult}}, here is me saying your bad-ass name in morse code:</prosody></Say>
  <Say language="morse">{{SpeechResult}}</Say>
  <Redirect method="GET">https://morsecode.signalwire.com/laml-bins/5e266f7b-526c-43ac-810d-2d82b5e43f22?name={{SpeechResult}}</Redirect>
</Response>


4. Now let's keep the fun going with speech recognition on full sentences!

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Gather input="speech" speechTimeout="auto" action="https://morsecode.signalwire.com/laml-bins/db6ea71a-ac66-4207-a2cd-28803a68ffc9?name={{name}}">
    <say><prosody pitch="+10%">Speak whatever you want, and I'll say it in morse code.</prosody></Say>
  </Gather>
  <Say><prosody pitch="+10%">I suppose history means nothing to you {{name}}! Well then, good day sir!</prosody></Say>
</Response>


5. Speak the results

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say><prosody pitch="+10%"">That would be:</prosody></Say>
  <Say language="morse" voice="woman">{{SpeechResult}}</Say>
  <Say><prosody pitch="+10%">I've waited years for this moment {{name}}. Let's keep it going.</prosody></Say>
  <Redirect>https://morsecode.signalwire.com/laml-bins/5e266f7b-526c-43ac-810d-2d82b5e43f22</Redirect>
</response>


6. Keep Digging

Did you know that SignalWire does Voice, SMS, MMS, WebRTC... the whole shebang. Perhaps there is more to that 838-66-MORSE than meets the ear...