Google Translate Versus Microsoft Translator: Who Wins?

Yash Singh
The Startup
Published in
9 min readJul 31, 2020

We all know that when it comes to translating two companies rule: Google and Microsoft. This post will compare the two from a user’s perspective and a developer’s perspective and also give some tips in the end in the development process. With both of them expanding their domain of capabilities, selecting one is not an easy decision.

Translating for Users

If you are a user then your choice depends on what you want to translate and what methods you want to use for it. Google Translate has a mobile application and a web application.

Google Translate on mobile allows you to do the following:

  • Translate text in a photo
  • Translate voice conversations
  • Translate plain text
  • Documents (pdf, pptx, etc.)
  • Translate handwriting and drawings

Microsoft Translate, however, allows you to do a little less:

  • Translate text in photos
  • Translate plain text
  • Translate voice conversations
  • Documents (pdf, pptx, etc.)

They just missed out on the handwriting and drawings part for mobile. Still, on the desktop application, you can translate drawings using Windows Pen.

They both are also trying hard as competitors to integrate their translation services. Let’s compare and contrast their integrations. According to Microsoft they also have a mobile and web application. Not only do they have that, but they also have a desktop application.

Windows Desktop App
Windows Desktop App

As mentioned above, their desktop application allows you to use stylus or pen to translate drawings. Microsoft created a chatting system based on voice and text that automatically translates content which is aimed at schools and businesses as customers. They also pushed their translations as plugins to their Office 365, Microsoft Teams, and many more of their products generate more traffic for their translation service. Google Translate is also available in many different places. They have introduced their product on Google Docs, Google Sheets, and many more of their Google Drive products. It is also available on Android and Chromium to translate any application’s text live. They also integrated their translation service into Google Hangouts and Google Meet.

Both of them are back to back in multiple features too. One of these features is offline language support which is a feature in which you can download a language onto your device instead of using the internet to translate. None of them yet supports transliteration for users but Microsoft’s API does. Google has a deprecated product called Google Transliterate which is an API for developers. If you want to transliterate text then there are many online applications that use these APIs allowing you to transliterate text.

Translating for Developers

If you are a developer, not only do you care about features, but you also care about quality, pricing, and simplicity. This section helps developers choose translation services for their applications.

Google Translate is divided into four parts:

  • AutoML Translation
  • Translation Advanced
  • Translation Basic
  • Media Translation

Each one of them offers you different approaches to pricing and usage. Here is a table from Google comparing their capabilities:

Google Translation API Table
Features for different pricing in Google Translate

The AutoML Translation API is made for those who don’t have Machine Learning expertise to make custom models. They can easily train their models. This comes at feature costs limiting some languages, using the general models, using glossaries, detecting languages, and translating HTML. The Translation API Advanced on the other hand allows you to do everything in AutoML but the building custom models part. It has even more features too. The Translation API Basic is made for those who don’t need too expensive features that could enhance their application. It doesn’t have glossaries, batch translations, custom models for translations, and more. Another main feature that Advanced has and Basic doesn’t is a gRPC API. Using a gRPC API could increase performance due to the compression of data on transfer if there are large data transfers. Also, there are a few other features not shown in this chart. For example, you can only get the unlocalized names and not the localized names of the supported languages when you call the supported languages API. For example, the response will only give you en and not English also. There is a way around this by web scraping the table that contains all of the information of the Google Cloud Translation API. If you are making a simple application I would recommend the Basic version over the Advanced version. If you are making a large application that needs more features and translates large content I would suggest the Advanced one.

Now let’s move on to pricing. Here is a page on the Google Translate API’s pricing. There are no charges for getting the supported languages or auto-detect when calling the API. Your first 500,000 characters translated will be given for free. After that, you will be charged an extra $20.00 for every million characters till you touch a billion. If you touch a billion then you will have to contact support for discounts and cooperation. The same pricing applies to Translation API Advanced but instead, batch translations count in the request characters. AutoML’s pricing is a bit different:

AutoML Pricing for Training

Above are a few tables from the Google Translate Documentation explaining the AutoML API’s pricing. The first table gives an estimate of how long it takes to train. The operations cost $45 per hour. Also, the max training price is $300. This gives you 300 divided by 45 hours to train. That means your max time will be somewhere around 6 hours and 40 minutes. So that means you can train somewhere between 100,001–1,000,000 pairs per training. That is over 550,000 training pairs per training if you take the middle of the range. That is maybe $600 for a very good translation model and the cost of hiring people for the training sets could make it larger. That is probably around $10,000 as a very raw estimate for your costs for a custom model. That is why is it is always best to start with Google Translate’s model so you don’t need to waste time and money on training and building your custom model. Now let’s look at the translation costs for AutoML:

Translation costs for AutoML
Translation Costs for AutoML

If you compare the prices for AutoML with the Cloud Translation API, the Cloud Translation API is a better buy. Some used AutoML though, for there own reasons. Look at this video made by Google and Bloomberg showing why they used AutoML and Google Translate.

Now let’s move on to the Media Translation API. The Media Translation API is an API that allows you to translate audio dynamically using voice cloning. Since this post is not focused around it we will talk about it briefly. At the time of writing this article, it is in BETA so it won’t support that many languages and may have some errors. Here is its pricing:

Streaming Translation Pricing
Streaming Translation Pricing

You get your first 60 minutes free then for the next 1 million minutes, it is $0.068 per minute. There is a limit of 1 million minutes per month. Now, let’s move on to Microsoft.

Microsoft has even more flexible pricing. Even though you can’t translate text in images you can get access to the unlocalized and localized and native names for the supported languages, you can transliterate text, something that has been deprecated from Google Translate in 2011, determine sentence lengths, and much more. Another key feature of Microsoft Translate is that you can send multiple texts and/or HTML content pieces and you can specify multiple languages. Custom translations are free in Microsoft. People say that Microsoft chooses quality over quantity. They have only 60 languages while Google Translate has over 100 languages. With Google Translate you have access to only 500,000 characters free. In Microsoft Translate you have access to 2M characters per month. That is a big difference that could help you in translating more. Their pricing is pretty complicated so I will give a link to it. If you are a startup or making a small application then you should use the free tier or the S1 plan. If you are a large enterprise then I suggest the volume discounts.

Also, one fallback Google Translate has is it requires you to put their logo, wrap content in a <div> or <span> tag with labels saying that it was translated with Google Translate, and text at the bottom giving a warning. All of this isn’t hard work but could possibly make your application look a bit worse.

Either way, both Google Translate, and Microsoft Translate are competitive in quality and pricing provided to you. What matters is your application.

Development

One of the most important parts of making a translation application is of course the development. Both companies, Microsoft and Google, strive to make their developers have an easier time using them inside their applications. They both have very detailed and well-written documentation and provide sample applications. The only problem is that Google makes you go hunting for query parameters and headers documentation for their API. After searching through StackOverflow for 30 minutes I found this link: https://cloud.google.com/translate/docs/reference/rest/v2/translate. It will explain everything about the API. You just saved 30 minutes. Google has an NPM package that allows you to translate easily. I suggest that you just make an API request without the module instead. Keep in mind that you need to put an attribute in your HTML saying that you used Google Translate. More information is given above in the Translating for Developers section. Also, one more fallback that is often not taken seriously is the 5000 characters per request limit for both of the APIs. Make sure your content is less than 5000 characters or divide it up. Another thing to keep in mind when using Microsoft Translator is backslashes. You don’t need to add backslashes in your request, but Microsoft Translator returns backslashes in the response. You should remove backslashes just in case after you get a response. Microsoft Translator has a whole documentation page that tells everything about every single header and query parameter. Inside it, the following is said:

textType Optional parameter
Defines whether the text being translated is plain text or HTML text. Any HTML needs to be a well-formed, complete element. Possible values are: plain (default) or html.

Keep in mind to set the textType query parameter when querying HTML translations. If you are sending plain data then just don’t add in the parameter. Another thing that you should do when you are making a translation application is to make sure that the language that is being queried supported. If you are specifying what language the user can choose then that is fine. If you are in the scenario where you have an input box or any other form of input that can’t be controlled to its limits, then make sure that the language is supported. Using Microsoft Translator the link is the following: https://api.cognitive.microsofttranslator.com/languages?api-version=3.0 Using Google Translate the link is the following: https://translation.googleapis.com/language/translate/v2/languages

Note that when you are using the Google Translate query you need to specify the API key or your authentication form while in Microsoft Translate you don’t. This difference just makes your life a bit easier when you are using Microsoft Translate.

Microsoft Translate wants the api-version parameter to check whether you are using the latest version which, at the writing of this article, is 3.0. Other deprecated versions don’t support as many features and languages. My suggestion would be to stick with the latest LTS version.

If you want to display the localized name and don’t have Translation Advanced I suggest that you web scrape the following link instead of using the API:

Conclusion

These giants have their advantages and you can’t choose between them with one decision. Your decision depends on your product’s needs. If you have a little personal project with transliteration then use Microsoft Translator. If you have to translate audio then use the Media Translation API. If you want to easily make a custom machine learning model for translation then use AutoML. Everything depends on your application.

--

--