From 5e400d474043044ba0e3e907a74b4baccb16ee7c Mon Sep 17 00:00:00 2001
From: blue-fish <67130644+blue-fish@users.noreply.github.com>
Date: Sun, 12 Jul 2020 09:09:21 -0700
Subject: [PATCH] Toolbox UI update (#422)
---
toolbox/ui.py | 86 +++++++++++++++++++++------------------------------
1 file changed, 35 insertions(+), 51 deletions(-)
diff --git a/toolbox/ui.py b/toolbox/ui.py
index 75a2200..d44f333 100644
--- a/toolbox/ui.py
+++ b/toolbox/ui.py
@@ -174,12 +174,9 @@ class UI(QDialog):
if len(input_devices) == 0:
self.log("No audio input device detected. Recording may not work.")
- self.audio_in_devices_cb.addItems(["None"])
- self.audio_in_devices_cb.setDisabled(True)
+ self.audio_in_device = None
else:
- self.audio_in_devices_cb.clear()
- self.audio_in_devices_cb.addItems(input_devices)
- self.audio_in_devices_cb.currentTextChanged.connect(self.set_audio_device)
+ self.audio_in_device = input_devices[0]
if len(output_devices) == 0:
self.log("No supported output audio devices were found! Audio output may not work.")
@@ -193,16 +190,13 @@ class UI(QDialog):
self.set_audio_device()
def set_audio_device(self):
- input_device = self.audio_in_devices_cb.currentText()
- if input_device == "None":
- input_device = None
output_device = self.audio_out_devices_cb.currentText()
if output_device == "None":
output_device = None
# If None, sounddevice queries portaudio
- sd.default.device = (input_device, output_device)
+ sd.default.device = (self.audio_in_device, output_device)
def play(self, wav, sample_rate):
sd.stop()
@@ -298,6 +292,7 @@ class UI(QDialog):
self.speaker_box.setDisabled(True)
self.dataset_box.setDisabled(True)
self.browser_load_button.setDisabled(True)
+ self.auto_next_checkbox.setDisabled(True)
return
self.repopulate_box(self.dataset_box, datasets, random)
@@ -423,24 +418,24 @@ class UI(QDialog):
# Browser
browser_layout = QGridLayout()
- root_layout.addLayout(browser_layout, 0, 1)
-
- # Visualizations
- vis_layout = QVBoxLayout()
- root_layout.addLayout(vis_layout, 1, 1, 2, 3)
+ root_layout.addLayout(browser_layout, 0, 0, 1, 2)
# Generation
gen_layout = QVBoxLayout()
- root_layout.addLayout(gen_layout, 0, 2)
+ root_layout.addLayout(gen_layout, 0, 2, 1, 2)
# Projections
self.projections_layout = QVBoxLayout()
- root_layout.addLayout(self.projections_layout, 1, 0)
+ root_layout.addLayout(self.projections_layout, 1, 0, 1, 1)
+
+ # Visualizations
+ vis_layout = QVBoxLayout()
+ root_layout.addLayout(vis_layout, 1, 1, 1, 3)
## Projections
# UMap
- fig, self.umap_ax = plt.subplots(figsize=(4, 4), facecolor="#F0F0F0")
+ fig, self.umap_ax = plt.subplots(figsize=(3, 3), facecolor="#F0F0F0")
fig.subplots_adjust(left=0.02, bottom=0.02, right=0.98, top=0.98)
self.projections_layout.addWidget(FigureCanvas(fig))
self.umap_hot = False
@@ -460,8 +455,6 @@ class UI(QDialog):
self.utterance_box = QComboBox()
browser_layout.addWidget(QLabel("Utterance"), i, 2)
browser_layout.addWidget(self.utterance_box, i + 1, 2)
- self.browser_browse_button = QPushButton("Browse")
- browser_layout.addWidget(self.browser_browse_button, i, 3)
self.browser_load_button = QPushButton("Load")
browser_layout.addWidget(self.browser_load_button, i + 1, 3)
i += 2
@@ -480,16 +473,13 @@ class UI(QDialog):
# Utterance box
browser_layout.addWidget(QLabel("Use embedding from:"), i, 0)
- i += 1
-
- # Random & next utterance buttons
self.utterance_history = QComboBox()
- browser_layout.addWidget(self.utterance_history, i, 0, 1, 3)
+ browser_layout.addWidget(self.utterance_history, i, 1, 1, 3)
i += 1
# Random & next utterance buttons
- self.take_generated_button = QPushButton("Take generated")
- browser_layout.addWidget(self.take_generated_button, i, 0)
+ self.browser_browse_button = QPushButton("Browse")
+ browser_layout.addWidget(self.browser_browse_button, i, 0)
self.record_button = QPushButton("Record")
browser_layout.addWidget(self.record_button, i, 1)
self.play_button = QPushButton("Play")
@@ -498,17 +488,8 @@ class UI(QDialog):
browser_layout.addWidget(self.stop_button, i, 3)
i += 1
- #Audio devices
- browser_layout.addWidget(QLabel("Audio Input"), i, 0)
- self.audio_in_devices_cb=QComboBox()
- browser_layout.addWidget(self.audio_in_devices_cb, i+1, 0)
-
- browser_layout.addWidget(QLabel("Audio Output"), i, 1)
- self.audio_out_devices_cb=QComboBox()
- browser_layout.addWidget(self.audio_out_devices_cb, i+1, 1)
- i += 3
- # Model selection
+ # Model and audio output selection
self.encoder_box = QComboBox()
browser_layout.addWidget(QLabel("Encoder"), i, 0)
browser_layout.addWidget(self.encoder_box, i + 1, 0)
@@ -518,8 +499,27 @@ class UI(QDialog):
self.vocoder_box = QComboBox()
browser_layout.addWidget(QLabel("Vocoder"), i, 2)
browser_layout.addWidget(self.vocoder_box, i + 1, 2)
+
+ self.audio_out_devices_cb=QComboBox()
+ browser_layout.addWidget(QLabel("Audio Output"), i, 3)
+ browser_layout.addWidget(self.audio_out_devices_cb, i + 1, 3)
i += 2
+ #Replay & Save Audio
+ browser_layout.addWidget(QLabel("Toolbox Output:"), i, 0)
+ self.waves_cb = QComboBox()
+ self.waves_cb_model = QStringListModel()
+ self.waves_cb.setModel(self.waves_cb_model)
+ self.waves_cb.setToolTip("Select one of the last generated waves in this section for replaying or exporting")
+ browser_layout.addWidget(self.waves_cb, i, 1)
+ self.replay_wav_button = QPushButton("Replay")
+ self.replay_wav_button.setToolTip("Replay last generated vocoder")
+ browser_layout.addWidget(self.replay_wav_button, i, 2)
+ self.export_wav_button = QPushButton("Export")
+ self.export_wav_button.setToolTip("Save last generated vocoder audio in filesystem as a wav file")
+ browser_layout.addWidget(self.export_wav_button, i, 3)
+ i += 1
+
## Embed & spectrograms
vis_layout.addStretch()
@@ -555,22 +555,6 @@ class UI(QDialog):
layout.addWidget(self.vocode_button)
gen_layout.addLayout(layout)
-
- #Replay & Save Audio
- layout2 = QHBoxLayout()
- self.replay_wav_button = QPushButton("Replay")
- self.replay_wav_button.setToolTip("Replay last generated vocoder")
- layout2.addWidget(self.replay_wav_button)
- self.export_wav_button = QPushButton("Export")
- self.export_wav_button.setToolTip("Save last generated vocoder audio in filesystem as a wav file")
- layout2.addWidget(self.export_wav_button)
- self.waves_cb_model = QStringListModel()
- self.waves_cb = QComboBox()
- self.waves_cb.setModel(self.waves_cb_model)
- self.waves_cb.setToolTip("Select one of the last generated waves in this section for replaying or exporting")
- layout2.addWidget(self.waves_cb)
- gen_layout.addLayout(layout2)
-
self.loading_bar = QProgressBar()
gen_layout.addWidget(self.loading_bar)
--
GitLab