Adding setting for favorite languages (#915)

This commit is contained in:
Raivis Dejus 2024-09-29 09:16:21 +03:00 committed by GitHub
commit 6f049e6d09
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 7 deletions

View file

@ -1,7 +1,9 @@
from typing import Optional
import os
from PyQt6.QtCore import pyqtSignal
from PyQt6.QtCore import pyqtSignal, Qt
from PyQt6.QtWidgets import QComboBox, QWidget
from PyQt6.QtGui import QStandardItem, QStandardItemModel
from buzz.locale import _
from buzz.transcriber.transcriber import LANGUAGES
@ -18,13 +20,28 @@ class LanguagesComboBox(QComboBox):
) -> None:
super().__init__(parent)
favorite_languages = os.getenv("BUZZ_FAVORITE_LANGUAGES", '')
favorite_languages = favorite_languages.split(",")
favorite_languages = [(lang, LANGUAGES[lang].title()) for lang in favorite_languages
if lang in LANGUAGES]
if favorite_languages:
favorite_languages.insert(0, ("-------", "-------"))
favorite_languages.append(("-------", "-------"))
whisper_languages = sorted(
[(lang, LANGUAGES[lang].title()) for lang in LANGUAGES],
key=lambda lang: lang[1],
)
self.languages = [("", _("Detect Language"))] + whisper_languages
self.languages = [("", _("Detect Language"))] + favorite_languages + whisper_languages
self.addItems([lang[1] for lang in self.languages])
model = QStandardItemModel()
for lang in self.languages:
item = QStandardItem(lang[1])
if lang[0] == "-------":
item.setFlags(item.flags() & ~Qt.ItemFlag.ItemIsSelectable & ~Qt.ItemFlag.ItemIsEnabled)
model.appendRow(item)
self.setModel(model)
self.currentIndexChanged.connect(self.on_index_changed)
default_language_key = default_language if default_language != "" else None

View file

@ -60,14 +60,17 @@ set SOME_OTHER_VARIABLE=some_other_value
### Available variables
**BUZZ_WHISPERCPP_N_THREADS** - Number of threads to use for Whisper.cpp model. Default is `4`. Available from `v1.0.2`.
**BUZZ_WHISPERCPP_N_THREADS** - Number of threads to use for Whisper.cpp model. Default is `4`.
On a laptop with 16 threads setting `BUZZ_WHISPERCPP_N_THREADS=8` leads to some 15% speedup in transcription time.
Increasing number of threads even more will lead in slower transcription time as results from parallel threads has to be
combined to produce the final answer.
**BUZZ_TRANSLATION_API_BASE_URl** - Base URL of OpenAI compatible API to use for translation. Available from `v1.0.2`.
**BUZZ_TRANSLATION_API_BASE_URl** - Base URL of OpenAI compatible API to use for translation.
**BUZZ_TRANSLATION_API_KEY** - Api key of OpenAI compatible API to use for translation. Available from `v1.0.2`.
**BUZZ_TRANSLATION_API_KEY** - Api key of OpenAI compatible API to use for translation.
**BUZZ_MODEL_ROOT** - Root directory to store model files. Defaults to [user_cache_dir](https://pypi.org/project/platformdirs/). Available from `v1.0.2`.
**BUZZ_MODEL_ROOT** - Root directory to store model files.
Defaults to [user_cache_dir](https://pypi.org/project/platformdirs/).
**BUZZ_FAVORITE_LANGUAGES** - Coma separated list of supported language codes to show on top of language list.