Skip to content

feat(transcription): add Microsoft Translator service - #636

Merged
damencho merged 1 commit into
jitsi:masterfrom
UnGast:transcription-bing-translator
May 8, 2026
Merged

feat(transcription): add Microsoft Translator service#636
damencho merged 1 commit into
jitsi:masterfrom
UnGast:transcription-bing-translator

Conversation

@UnGast

@UnGast UnGast commented May 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds BingTranslationService, a new TranslationService implementation backed by the Microsoft Translator Text API v3.

The service is selected through the existing org.jitsi.jigasi.transcription.translationService property, so no changes to Transcriber are required.

New configuration properties:

  • org.jitsi.jigasi.transcription.bing.subscription_key
  • org.jitsi.jigasi.transcription.bing.subscription_region
  • org.jitsi.jigasi.transcription.bing.endpoint (defaults to https://api.cognitive.microsofttranslator.com)
  • org.jitsi.jigasi.transcription.bing.api_version (defaults to 3.0)

The PR also adds commented sample configuration to jigasi-home/sip-communicator.properties and documents the provider in README.md.

Rationale

Microsoft Translator supports Upper Sorbian (hsb) and Lower Sorbian (dsb) in addition to common languages such as German and English. That makes it useful for deployments that need Sorbian translation without chaining through a separate pivot-language backend.

Test plan

  • Ran mvn verify locally with Maven 3.9.15 and Java 17; the build passed, including Checkstyle with 0 violations.
  • Validated in a local Jitsi/Jigasi transcriber stack:
    • German speech recognition -> English translated caption.
    • English speech recognition -> German translated caption.

@damencho

damencho commented May 7, 2026

Copy link
Copy Markdown
Member

How have you tested this if you don't have maven?

@codecov

codecov Bot commented May 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 64 lines in your changes missing coverage. Please review.
✅ Project coverage is 19.02%. Comparing base (b4174dc) to head (46275dc).

Files with missing lines Patch % Lines
...i/jigasi/transcription/BingTranslationService.java 0.00% 64 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##             master     #636      +/-   ##
============================================
- Coverage     19.14%   19.02%   -0.12%     
  Complexity      310      310              
============================================
  Files            83       84       +1     
  Lines          7204     7268      +64     
  Branches        958      966       +8     
============================================
+ Hits           1379     1383       +4     
- Misses         5596     5655      +59     
- Partials        229      230       +1     
Files with missing lines Coverage Δ
...i/jigasi/transcription/BingTranslationService.java 0.00% <0.00%> (ø)

... and 2 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b4174dc...46275dc. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@UnGast

UnGast commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

How have you tested this if you don't have maven?

Very efficiently:

Before Maven was available locally, I validated the new service outside the Maven lifecycle as follows:

  • I compiled BingTranslationService.java directly with javac against the Jigasi runtime dependency jars available in the local Docker/Jigasi test setup. This verified that the class itself compiled against the relevant Jigasi interfaces and third-party libraries used at runtime.

  • I ran a small standalone Java test runner that exercised the same request/response path against the real Microsoft Translator Text API. This checked that the service built the expected API URL, sent the required subscription key and region headers, serialized the request body correctly, and parsed the returned translation response correctly.

  • I tested multiple real translation cases through that runner, including German to English, English to German, Upper Sorbian to English, and Lower Sorbian to English.

  • I then loaded the compiled class into the local Jigasi container/test setup and configured Jigasi to use it as org.jitsi.jigasi.transcription.translationService. In that setup I verified translated captions in a local Jitsi/Jigasi transcriber conference flow.

I have now also run mvn verify locally with Maven 3.9.15 and Java 17; it passes successfully, including Checkstyle with 0 violations. I updated the PR description accordingly.

@damencho

damencho commented May 7, 2026

Copy link
Copy Markdown
Member

Have you signed the CLA as I cannot find it?

@UnGast

UnGast commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

Have you signed the CLA as I cannot find it?

I have signed it now.

@damencho

damencho commented May 7, 2026

Copy link
Copy Markdown
Member

Hum, I still don't see it.

@UnGast

UnGast commented May 8, 2026

Copy link
Copy Markdown
Contributor Author

Hum, I still don't see it.

And now?

@damencho
damencho merged commit 46f5eb1 into jitsi:master May 8, 2026
3 of 5 checks passed
@damencho

damencho commented May 8, 2026

Copy link
Copy Markdown
Member

Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants