conversation of 2 users in different languages
Linguistic barriers often cause confusion, difficulty and inefficiency in hundreds of firms across the globe. Why should a French developer need to chat with her colleagues in English online? Similarly, professionals visiting their regional in other countries offices can find it difficult to communicate if they aren't well versed in the local language. Till now the solution has been for one party to change their prefered medium of discourse even though it is more inconvenient. We seeked to change that!
What it does
Babel-bot leverages the power of Watson to enrich the communication experience between colleagues using the rich Cisco Spark platform. It allows users to converse in their language of choice without even noticing that the person they are chatting with is using a different language. Users use a simple command to invoke babel like so:
Babel translate @Pierre french
to invoke the bot. Babel immediately kicks off and acts as an intermediary between the conversation participants to deliver precise, real-time translations. By invoking two separate conversations with the users, the additional layer becomes invisible and user sees the conversation entirely in the language of their choice.
However, this is not everything Babel bot can do. Babel can provide insights into Concepts and Entities occurring in the conversation by making a great use of Watson Alchemy Service.
If you need to send a message an sms message to a colleague, that's also provided out-of-the-box with Babel-bot, wired through Cisco Tropo Service.
How we built it
We built Babel-bot using Java and Java SDK's of Cisco Spark and IBM Watson.
ngrok library allowed us to expose our localhost Rest server written in Spring Boot on the public IP address.
Cisco Spark's intuitive API allowed us to register webhooks that connect to the server-side code when someone interacts with the bot. Server then communicates with Watson and triggers appropriate response in the Cisco Spark platform
Challenges we ran into
The process of setting up the services and generation of the application access keys took significant part of our time. As Babel-bot interacts with several different APIs in real-time, architecture of the server side code was somewhat challenging. Having said that, we have to admit that both Cisco Spark and IBM Watson APIs are easy to use and intuitive, especially with the help of development teams.
Accomplishments that we're proud of
Working Babel-bot application that provides users with full functionality of real-time chat in different languages that happens behind the scenes and is abstracted away from the user. Additional functionalities such as entity and concept recognition, as well as integration with sms messages only add to the feeling of accomplishment.
What we learned
How to integrate applications with Cisco Spark and Watson, as well as the potential that could be unleashed by further combining these tools. Babel-bot could be only a beginning of the enriched chat experience.
What's next for Babel-bot
Finding Babel-bot a permanent, robust host and making it scalable, so that more and more users can reliably communicate and experience superior chat assistant. We're hoping to deploy Babel-bot in the official bot repository for Cisco Spark and make available to the public, for any chat. Leveraging features such as speech to text and text to speech, and combining them with the real time translation capabilities could be an amazing achievement that could revolutionize the collaborative power of Cisco Spark.