So, this is the core idea of Bohemicus: Let’s create an interface between you and your CAT tool. This interface should extend the capabilities of your CAT by a whole host of various features, thereby making you more effective and faster while translating your text in your CAT.
What it means in practice: Bohemicus will add the machine translation, voice dictation and many other features to e.g. the Across CAT tool that does not normally offer anything like that. You can then use machine translation, voice dictation in e.g. Across along with a whole host of other useful features. This functionality can be taken advantage of in virtually any CAT tool, be it Across, Transit, WordFast, memoQ, Trados Studio, XTM, Coach, Crowdin, Smartcat, etc.
I remember that moment very clearly: It happened sometime in 2016 while I was working at a translation. I do have some problems with procrastination, so I left it for the very last moment, just like usual. And there I was: Some 5500 words to be translated in just 5 hours. I knew I would need the Google Machine Translation Plug-in for this. So I set it up in my Trados Studio and started working. I toiled my a*s off, but I was finally able to deliver at 12.00, which was the deadline for this job.
I was really exhausted, but it gave me a lot to think about. Wouldn’t it be great if I could just use such a plug-in in ALL CAT tools? Especially in Across, which I was using a lot during that period.
Machine translation… in just about any CAT tool
So, I started researching the internet to find how to do that. I knew I would need some technique how to manipulate a 3rd party application (i.e. my CAT tool) from my own tool. And sure enough, you can always rely on StackOverflow. The solution was quite simple: use the SendKeys method to simulate user keystrokes along with the Clipboard class to be able to copy out an open translation segment, process it in my own tool and then re-insert it back into my CAT tool.
Well, it sounds easy on paper, but took me many hours to tune this up to work reliably.
I then spent many more hours on figuring out how the Google translation API actually works. I was reading that Google’s tutorial all over again and again, but still couldn’t make it work. It was really frustrating. But then I realized I could just take the Google translation API URL, add the text to be translated, add my API key along with my source and target language and just send this to Google as a GET request and read and parse the returned message. And it worked!
Having figured out that SendKey thing along with these GET requests, the rest was just a piece of cake. Soon enough I was able to use machine translation in all of my CAT tools regardless on whether these CAT tools actually supported any machine translation or not. I literally forced them to use it anyway.
Dictating my texts
Then I concentrated on the other important feature of Bohemicus, the voice dictation, or voice recognition, if you will.
I had been using some voice dictation software before, but the problem was that it only had a limited vocabulary, and most importantly, it was very sensitive to noise. It only worked reliably when there was no surrounding noise. Cooking/boiling noise, radio, street noise… and the program started outputting nonsense. Also, I had to work with a headset, which was annoying.
Also, I should emphasize that I am a speaker of Czech, i.e. a minor language. And as you can imagine, major world software manufacturers do not really bother to support such a minor language, so e.g. the Dragon dictation software is out of question for me. On the other hand, Google reliably support 100+ languages, including Czech, Slovak, or Hungarian to name a few.
Android does the trick
But one day I realized that the Android system in my phone offers this voice recognition feature – I could just pose a question and the system would capture it and process accordingly. And it was surprisingly accurate, worked without a headset and tolerated a great deal of surrounding noise. So I said: Hey! Could this be somehow used also for my work?
So, I started researching the Android app market, or Google Play, as they say. There were some apps to capture voice and send it to PC as text, but they were clumsy to use or did not work at all, as they required a Bluetooth/Wi-Fi connection, but I was just not able to connect them to my PC.
Google voice recognition API was too expensive
I also started researching this Google voice recognition API…. and it turned out that I could actually use it in my PC no problem… the only issue was the price. It’s relatively expensive – for my usual volumes, I would pay some 150-200 EUR a month. And I certainly did not want that. So I returned to this original idea of leveraging the voice recognition feature in my Android phone and somehow sending it to my PC through Bluetooth or WiFi.
And soon enough I found some 30 lines of Java code that did the trick of activating the speech recognition routine in my Android phone.
Connecting Android to my PC
The remaining problem was the connection, i.e. how to send the converted text back to my PC. After briefly experimenting with a cable connection, I finally decided that Bluetooth and WiFi would be far more suitable. Luckily, research and coding was nothing more than a technicality. Sure, it took some time to tune up, but I made it finally work reliably.
The 2 above features were actually 2 separate software programs at the beginning. I then merged them into just one application, because it just seemed to make sense.
Adding more features
After having coded the 2 main features described above, I decided to add some more features. Especially a clipboard manager, insertion of correct quotation marks and some note-taking, those were the features I wanted the most. I will explain those in more detail in a later article.