-
Notifications
You must be signed in to change notification settings - Fork 35
Home
Deploy a Serverless Multilingual Conference Room
This journey proposes a method to create a communications channel that’ll allow clients who speak different languages to seamlessly communicate with each other. This can be particularly useful in meetings rooms and conference calls where the participants are located in different countries, as translated subtitles or audio can be generated and delivered in real time.
Cloud
Create a multi-lingual conference room using Watson text to speech. OpenWhisk actions and a MQTT messaging broker are also used in this scenario.
By Kalonji Bankole
https://github.com/IBM/serverless-language-translation
https://translation-mqtt.mybluemix.net
https://www.youtube.com/watch?v=eXY0uh_SeKs
The pattern leverages the MQTT messaging protocol, which allows for each client to publish and “subscribe” to one or more channels. The channel makeup determines each client’s requested language and payload type, (fromClient/french/audio, for example).
The channel that each submitted message is sent to determines the sequence of cloud functions that will be called; for example, submitting a message to fromClient/english/audio will run the audio payload through Watson’s speech to text service, forward that result to the translation service, and then distribute the translated result to all listening clients
When the reader has completed this journey, they will understand how to:
- deploy OpenWhisk actions/triggers
- interact with the Watson IoT platform
- set up a CloudFoundry application
- Message received from a client, which can be a web browser, CLI, Openwhisk action, SMS text, etc.
- If message payload contains an audio file, it is transcribed to text.
- Transcribed text is translated to other supported languages.
- If message sent via SMS, sender phone number is added to an etcd key/value store. etcd is used here to maintain a list of subscriber’s phone numbers, as well as their respective languages. An adjustable TTL value is used here to remove numbers from the store if the subscriber does not participate in the conversation for 300 seconds.
- Translated messages/audio streams are published to various channels on the MQTT broker, which then distributes the messages amongst subscribing clients.
- OpenWhisk: Execute code on demand in a highly scalable, serverless environment.
- Watson Text to Speech: Converts written text into natural sounding audio in a variety of languages and voices.
- Messaging: Messaging is a key technology for modern applications using loosely decoupled architecture patterns such as microservices.
- Node.js: An open-source JavaScript run-time environment for executing server-side JavaScript code.
- Serverless: An event-action platform that allows you to execute code in response to an event.
Chat room translation using Watson, MQTT, Openwhisk, and Twilio
Kalonji Bankole
- This is watson-text-to-speech - Glitch: A demo of text-to-speech, where you can also create your own app
- Introduction to MQTT: IBM Knowledge Center article
- Explore MQTT and the Internet of Things service: Develop device-side and application-side programs using IBM Watson IoT Platform client libraries for Java
- Introducing Serverless Composition for IBM Cloud Functions: Blog post on a new programming model for composing IBM Cloud Functions
- Using IBM Cloud Functions to Create Serverless Microservices: How IBM Cloud Functions might be the best solution for your tech stack