Skip to content

Commit

Permalink
Merge pull request #12 from MontrealCorpusTools/0.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
mmcauliffe authored Apr 12, 2024
2 parents 903ac53 + f24f35c commit 9b55e67
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 93 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,5 @@ dmypy.json
anchor/_version.py

*.pclprof

.qtcreator/
22 changes: 7 additions & 15 deletions anchor/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1058,27 +1058,19 @@ def switch_utterance(self, new_index, old_index):
def model(self) -> CorpusModel:
return super(CorpusSelectionModel, self).model()

def checkSelected(self, utterance: Utterance):
def focus_utterance(self, index):
m = self.model()
for index in self.selectedRows(1):
if utterance.id == m._indices[index.row()]:
return True
return False

def focusUtterance(self, index):
m = self.model()
u = m.utteranceAt(index)
if u is None:
row = index.row()
utt_id = m.utterance_id_at(row)
if utt_id is None:
self.min_time = 0
self.max_time = 1
self.fileAboutToChange()
self.fileChanged.emit()
return
begin = u.begin
end = u.end
padding = 1
self.set_view_times(begin - padding, end + padding)
self.selectionAudioChanged.emit()
self.current_utterance_id = utt_id
self.currentUtteranceChanged.emit()
self.fileViewRequested.emit(self.model().audio_info_for_utterance(row))


class OovModel(TableModel):
Expand Down
2 changes: 1 addition & 1 deletion anchor/plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -1616,7 +1616,7 @@ def __init__(
def viewRangeChanged(self):
if (self.item_max - self.item_min) / (
self.selection_model.max_time - self.selection_model.min_time
) < 0.01:
) < 0.001:
self.hide()
else:
self.show()
Expand Down
76 changes: 0 additions & 76 deletions anchor/undo.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,26 +150,10 @@ def _redo(self, session) -> None:

def _undo(self, session) -> None:
for i, utt in enumerate(self.deleted_utterances):
try:
del utt.duration
except AttributeError:
pass
try:
del utt.kaldi_id
except AttributeError:
pass
make_transient(utt)
for x in utt.phone_intervals:
try:
del x.duration
except AttributeError:
pass
make_transient(x)
for x in utt.word_intervals:
try:
del x.duration
except AttributeError:
pass
make_transient(x)
if utt.channel is None:
utt.channel = self.channels[i]
Expand Down Expand Up @@ -212,52 +196,20 @@ def _redo(self, session) -> None:
if u.id is not None:
make_transient(u)
for x in u.phone_intervals:
try:
del x.duration
except AttributeError:
pass
make_transient(x)
for x in u.word_intervals:
try:
del x.duration
except AttributeError:
pass
make_transient(x)
if u.channel is None:
u.channel = self.merged_utterance.channel
try:
del u.duration
except AttributeError:
pass
try:
del u.kaldi_id
except AttributeError:
pass
session.add(u)

def _undo(self, session) -> None:
if self.merged_utterance.channel is None:
self.merged_utterance.channel = self.split_utterances[0].channel
try:
del self.merged_utterance.duration
except AttributeError:
pass
try:
del self.merged_utterance.kaldi_id
except AttributeError:
pass
make_transient(self.merged_utterance)
for x in self.merged_utterance.phone_intervals:
try:
del x.duration
except AttributeError:
pass
make_transient(x)
for x in self.merged_utterance.word_intervals:
try:
del x.duration
except AttributeError:
pass
make_transient(x)
session.add(self.merged_utterance)
for u in self.split_utterances:
Expand Down Expand Up @@ -300,7 +252,6 @@ def _redo(self, session) -> None:
make_transient(self.merged_utterance)
if self.merged_utterance.channel is None:
self.merged_utterance.channel = self.channel
self.merged_utterance.kaldi_id = None
session.add(self.merged_utterance)

def _undo(self, session) -> None:
Expand All @@ -309,12 +260,9 @@ def _undo(self, session) -> None:
if old_utt.channel is None:
old_utt.channel = self.channel
for x in old_utt.phone_intervals:
x.duration = None
make_transient(x)
for x in old_utt.word_intervals:
make_transient(x)
old_utt.duration = None
old_utt.kaldi_id = None
session.add(old_utt)
session.delete(self.merged_utterance)

Expand Down Expand Up @@ -402,14 +350,6 @@ def _redo(self, session) -> None:
make_transient(self.new_utterance)
if self.new_utterance.channel is None:
self.new_utterance.channel = self.channel
try:
del self.new_utterance.duration
except AttributeError:
pass
try:
del self.new_utterance.kaldi_id
except AttributeError:
pass
session.add(self.new_utterance)

def _undo(self, session) -> None:
Expand Down Expand Up @@ -453,10 +393,6 @@ def _redo(self, session) -> None:
self.utterance.xvector = None
self.utterance.ivector = None
self.utterance.features = None
try:
del self.utterance.duration
except AttributeError:
pass
session.merge(self.utterance)

def _undo(self, session) -> None:
Expand All @@ -465,10 +401,6 @@ def _undo(self, session) -> None:
self.utterance.xvector = None
self.utterance.ivector = None
self.utterance.features = None
try:
del self.utterance.duration
except AttributeError:
pass
session.merge(self.utterance)

def update_data(self):
Expand All @@ -495,10 +427,6 @@ def _redo(self, session) -> None:
for w in self.new_text.split():
if not self.corpus_model.dictionary_model.check_word(w, self.speaker_id):
oovs.add(w)
try:
del self.utterance.duration
except AttributeError:
pass
self.utterance.text = self.new_text
self.utterance.normalized_text = self.new_text # FIXME: Update this
self.utterance.oovs = " ".join(oovs)
Expand All @@ -510,10 +438,6 @@ def _undo(self, session) -> None:
for w in self.new_text.split():
if not self.corpus_model.dictionary_model.check_word(w, self.speaker_id):
oovs.add(w)
try:
del self.utterance.duration
except AttributeError:
pass
self.utterance.text = self.old_text
self.utterance.normalized_text = self.old_text # FIXME: Update this
self.utterance.oovs = " ".join(oovs)
Expand Down
2 changes: 1 addition & 1 deletion anchor/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ def __init__(self, *args):
def set_models(self, model: CorpusModel, selection_model: CorpusSelectionModel):
self.setModel(model)
self.setSelectionModel(selection_model)
self.doubleClicked.connect(self.selectionModel().focusUtterance)
self.doubleClicked.connect(self.selectionModel().focus_utterance)
self.model().utteranceTextUpdated.connect(self.repaint)
self.refresh_settings()
model.corpusLoaded.connect(self.update_header)
Expand Down
6 changes: 6 additions & 0 deletions docs/source/changelog/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ Changelog

Alpha releases

0.2.1
-----

- Fixed bug with calculated columns when merging/splitting and then changing time boundaries
- Fixed bug when double clicking on an utterance to focus it

0.2.0
-----

Expand Down

0 comments on commit 9b55e67

Please sign in to comment.