Skip to content

[feat] Server-wide default language for live transcription #19161

Description

@bakiburakogun

Is your feature request related to a problem? Please describe.

The live transcription language is stored per conversation only. LiveTranscriptionService::enable() reads $room->getLiveTranscriptionLanguageId() and omits langId entirely when it is empty, so the live_transcription app falls back to its hardcoded default (TranscribeRequest.langId: str = "en").

On an instance where the spoken language is not English this means:

  • every conversation starts in English until somebody opens the conversation settings and changes it,
  • users who do not know about that setting see English transcription of non-English speech, which produces nonsense,
  • the obvious-looking workaround — picking their own language in the personal "translation target language" setting — makes it worse, because the speech is still transcribed with the wrong acoustic model and is then machine-translated on top, adding a task-processing round trip per segment.

We run a Nextcloud for a public-sector organisation in Türkiye with several thousand users. Turkish is the language of essentially every call. There is no way to express that once for the whole instance.

Describe the solution you'd like

A server-level default that is used when a conversation has no explicit language set, for example:

occ config:app:set spreed transcription_language_default --value tr

LiveTranscriptionService::enable() would fall back to that value before falling back to the app's own default, and the conversation setting would continue to override it. The conversation settings dropdown could show it as "Default language (Türkçe)" instead of the current hardcoded "Default language (English)".

An admin UI field in the Talk settings would be nice but the occ/app-config key alone would already solve the problem for us — it is scriptable, which is what matters for a large deployment.

Describe alternatives you've considered

  • Setting the language on every conversation by hand. Not workable at our size, and it does not help conversations created later.
  • Updating oc_talk_rooms.transcription_language directly in the database. It would fix existing rooms but bypasses the service layer and still leaves new rooms defaulting to English.
  • Changing the default in the live_transcription app instead. That app already carries a # todo: declarative settings for language override note, but the value logically belongs to Talk, since Talk is what decides whether to send langId at all.

Additional context

Related: the same "make the default configurable instead of hardcoded" gap exists for the Photos and Talk attachment folder names, which we also hit on this deployment.

Nextcloud version: 34.0.3
Talk version: 24.0.4
live_transcription version: 2.1.3

Happy to open a PR for the app-config fallback if the approach sounds right to you.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions