mirror of
https://github.com/chidiwilliams/buzz.git
synced 2024-06-29 05:00:21 +02:00
Add reset settings to default (#178)
This commit is contained in:
parent
1869c71c9d
commit
60e586b20e
|
@ -8,4 +8,4 @@ omit =
|
||||||
directory = coverage/html
|
directory = coverage/html
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
fail_under = 75
|
fail_under = 78
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,4 +1,5 @@
|
||||||
version := $$(poetry version -s)
|
version := $$(poetry version -s)
|
||||||
|
version_escaped := $$(echo ${version} | sed -e 's/\./\\./g')
|
||||||
|
|
||||||
mac_app_path := ./dist/Buzz.app
|
mac_app_path := ./dist/Buzz.app
|
||||||
mac_zip_path := ./dist/Buzz-${version}-mac.zip
|
mac_zip_path := ./dist/Buzz-${version}-mac.zip
|
||||||
|
@ -54,6 +55,7 @@ dist/Buzz dist/Buzz.app: whisper_cpp.py
|
||||||
version:
|
version:
|
||||||
poetry version ${version}
|
poetry version ${version}
|
||||||
echo "VERSION = \"${version}\"" > __version__.py
|
echo "VERSION = \"${version}\"" > __version__.py
|
||||||
|
sed -i "s/version=.*,/version=\'${version_escaped}\',/" Buzz.spec
|
||||||
|
|
||||||
CMAKE_FLAGS=
|
CMAKE_FLAGS=
|
||||||
ifeq ($(UNAME_S),Darwin)
|
ifeq ($(UNAME_S),Darwin)
|
||||||
|
|
34
gui.py
34
gui.py
|
@ -1,9 +1,10 @@
|
||||||
import enum
|
import enum
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import sys
|
import sys
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Dict, List, Optional, Tuple
|
from typing import Any, Dict, List, Optional, Tuple
|
||||||
|
|
||||||
import humanize
|
import humanize
|
||||||
import sounddevice
|
import sounddevice
|
||||||
|
@ -469,7 +470,7 @@ class FileTranscriberWidget(QWidget):
|
||||||
if output_file == '':
|
if output_file == '':
|
||||||
return
|
return
|
||||||
|
|
||||||
use_whisper_cpp = self.settings.enable_ggml_inference(
|
use_whisper_cpp = self.settings.get_enable_ggml_inference(
|
||||||
) and self.selected_language is not None
|
) and self.selected_language is not None
|
||||||
|
|
||||||
self.run_button.setDisabled(True)
|
self.run_button.setDisabled(True)
|
||||||
|
@ -547,15 +548,30 @@ class FileTranscriberWidget(QWidget):
|
||||||
|
|
||||||
|
|
||||||
class Settings(QSettings):
|
class Settings(QSettings):
|
||||||
ENABLE_GGML_INFERENCE = 'enable_ggml_inference'
|
_ENABLE_GGML_INFERENCE = 'enable_ggml_inference'
|
||||||
|
|
||||||
def __init__(self, parent: Optional[QWidget], *args):
|
def __init__(self, parent: Optional[QWidget] = None, *args):
|
||||||
super().__init__('Buzz', 'Buzz', parent, *args)
|
super().__init__('Buzz', 'Buzz', parent, *args)
|
||||||
|
logging.debug('Loaded settings from path = %s', self.fileName())
|
||||||
|
|
||||||
def enable_ggml_inference(self):
|
def get_enable_ggml_inference(self) -> bool:
|
||||||
if LOADED_WHISPER_DLL is False:
|
if LOADED_WHISPER_DLL is False:
|
||||||
return False
|
return False
|
||||||
return self.value(self.ENABLE_GGML_INFERENCE, False)
|
return self._value_to_bool(self.value(self._ENABLE_GGML_INFERENCE, False))
|
||||||
|
|
||||||
|
def set_enable_ggml_inference(self, value: bool) -> None:
|
||||||
|
self.setValue(self._ENABLE_GGML_INFERENCE, value)
|
||||||
|
|
||||||
|
# Convert QSettings value to boolean: https://forum.qt.io/topic/108622/how-to-get-a-boolean-value-from-qsettings-correctly
|
||||||
|
@staticmethod
|
||||||
|
def _value_to_bool(value: Any) -> bool:
|
||||||
|
if isinstance(value, bool):
|
||||||
|
return value
|
||||||
|
|
||||||
|
if isinstance(value, str):
|
||||||
|
return value.lower() == 'true'
|
||||||
|
|
||||||
|
return bool(value)
|
||||||
|
|
||||||
|
|
||||||
class RecordingTranscriberWidget(QWidget):
|
class RecordingTranscriberWidget(QWidget):
|
||||||
|
@ -642,7 +658,7 @@ class RecordingTranscriberWidget(QWidget):
|
||||||
def start_recording(self):
|
def start_recording(self):
|
||||||
self.record_button.setDisabled(True)
|
self.record_button.setDisabled(True)
|
||||||
|
|
||||||
use_whisper_cpp = self.settings.enable_ggml_inference(
|
use_whisper_cpp = self.settings.get_enable_ggml_inference(
|
||||||
) and self.selected_language is not None
|
) and self.selected_language is not None
|
||||||
|
|
||||||
model_name = get_model_name(self.selected_quality)
|
model_name = get_model_name(self.selected_quality)
|
||||||
|
@ -803,7 +819,7 @@ class MainWindow(QMainWindow):
|
||||||
'&Enable GGML Inference', self)
|
'&Enable GGML Inference', self)
|
||||||
enable_ggml_inference_action.setCheckable(True)
|
enable_ggml_inference_action.setCheckable(True)
|
||||||
enable_ggml_inference_action.setChecked(
|
enable_ggml_inference_action.setChecked(
|
||||||
bool(self.settings.enable_ggml_inference()))
|
bool(self.settings.get_enable_ggml_inference()))
|
||||||
enable_ggml_inference_action.triggered.connect(
|
enable_ggml_inference_action.triggered.connect(
|
||||||
self.on_toggle_enable_ggml_inference)
|
self.on_toggle_enable_ggml_inference)
|
||||||
enable_ggml_inference_action.setDisabled(LOADED_WHISPER_DLL is False)
|
enable_ggml_inference_action.setDisabled(LOADED_WHISPER_DLL is False)
|
||||||
|
@ -822,7 +838,7 @@ class MainWindow(QMainWindow):
|
||||||
self.new_import_window_triggered.emit((file_path, self.geometry()))
|
self.new_import_window_triggered.emit((file_path, self.geometry()))
|
||||||
|
|
||||||
def on_toggle_enable_ggml_inference(self, state: bool):
|
def on_toggle_enable_ggml_inference(self, state: bool):
|
||||||
self.settings.setValue(Settings.ENABLE_GGML_INFERENCE, state)
|
self.settings.set_enable_ggml_inference(state)
|
||||||
|
|
||||||
def on_trigger_about_action(self):
|
def on_trigger_about_action(self):
|
||||||
about_dialog = AboutDialog(self)
|
about_dialog = AboutDialog(self)
|
||||||
|
|
16
gui_test.py
16
gui_test.py
|
@ -7,7 +7,7 @@ from PyQt6.QtCore import Qt
|
||||||
|
|
||||||
from gui import (Application, AudioDevicesComboBox,
|
from gui import (Application, AudioDevicesComboBox,
|
||||||
DownloadModelProgressDialog, FileTranscriberWidget,
|
DownloadModelProgressDialog, FileTranscriberWidget,
|
||||||
LanguagesComboBox, MainWindow, OutputFormatsComboBox, Quality,
|
LanguagesComboBox, MainWindow, OutputFormatsComboBox, Quality, Settings,
|
||||||
QualityComboBox, TranscriberProgressDialog)
|
QualityComboBox, TranscriberProgressDialog)
|
||||||
from transcriber import OutputFormat
|
from transcriber import OutputFormat
|
||||||
|
|
||||||
|
@ -190,3 +190,17 @@ class TestFileTranscriberWidget:
|
||||||
|
|
||||||
output_file = open(output_file_path, 'r', encoding='utf-8')
|
output_file = open(output_file_path, 'r', encoding='utf-8')
|
||||||
assert 'Bienvenue dans Passe-Relle, un podcast' in output_file.read()
|
assert 'Bienvenue dans Passe-Relle, un podcast' in output_file.read()
|
||||||
|
|
||||||
|
|
||||||
|
class TestSettings:
|
||||||
|
def test_should_enable_ggml_inference(self):
|
||||||
|
settings = Settings()
|
||||||
|
settings.clear()
|
||||||
|
|
||||||
|
assert settings.get_enable_ggml_inference() is False
|
||||||
|
|
||||||
|
settings.set_enable_ggml_inference(True)
|
||||||
|
assert settings.get_enable_ggml_inference() is True
|
||||||
|
|
||||||
|
settings.set_enable_ggml_inference(False)
|
||||||
|
assert settings.get_enable_ggml_inference() is False
|
||||||
|
|
Loading…
Reference in a new issue