Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 13 additions & 48 deletions __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ def stop_dictation(self, message=None):
name = self.dictation_sessions[sess.session_id]["file_name"] or time.time()
with open(f"{path}/{name}.txt", "w") as f:
f.write("\n".join(self.dictation_sessions[sess.session_id]["dictation_stack"]))
self.gui.show_text(f"saved to {path}/{name}.txt")

if sess.session_id == "default":
self.gui.show_text(f"saved to {path}/{name}.txt")

self.dictation_sessions[sess.session_id]["dictating"] = False

Expand All @@ -94,6 +96,10 @@ def handle_stop_dictation_intent(self, message):
self.speak_dialog("not_dictating")
self.stop_dictation(message)

def can_stop(self, message: Message) -> bool:
session = SessionManager.get(message)
return session.session_id in self.dictation_sessions and self.dictation_sessions[session.session_id]["dictating"]

def stop_session(self, session: Session):
if session.session_id in self.dictation_sessions and \
self.dictation_sessions[session.session_id]["dictating"]:
Expand All @@ -102,14 +108,6 @@ def stop_session(self, session: Session):
return True
return False

def stop(self):
sess = SessionManager.get()
if sess.session_id in self.dictation_sessions and \
self.dictation_sessions[sess.session_id]["dictating"]:
self.stop_session(sess)
return True
return False

def can_answer(self, message: Message) -> bool:
"""
Determines if the skill can handle the given utterances in the specified language in the converse method.
Expand All @@ -119,47 +117,14 @@ def can_answer(self, message: Message) -> bool:
Returns:
True if the skill can handle the query during converse; otherwise, False.
"""
sess = SessionManager.get(message)
if sess.session_id in self.dictation_sessions and \
self.dictation_sessions[sess.session_id]["dictating"]:
return True
return False
return self.can_stop(message) # same logic

def converse(self, message):
utterance = message.data["utterances"][0]
sess = SessionManager.get(message)
if sess.session_id in self.dictation_sessions and \
self.dictation_sessions[sess.session_id]["dictating"]:
if self.voc_match(utterance, "StopKeyword"):
self.handle_stop_dictation_intent(message)
else:
if self.voc_match(utterance, "StopKeyword"):
self.handle_stop_dictation_intent(message)
else:
if sess.session_id == "default":
self.gui.show_text(utterance)
self.dictation_sessions[sess.session_id]["dictation_stack"].append(utterance)
return True
return False


if __name__ == "__main__":
from ovos_utils.fakebus import FakeBus


# print speak for debugging
def spk(utt, *args, **kwargs):
print(utt)


s = DictationSkill(skill_id="fake.test", bus=FakeBus())
s.speak = spk

s.handle_stop_dictation_intent(Message(""))
# I am not dictating at this moment
s.handle_start_dictation_intent(Message(""))
# ok, i am ready for dictation
s.converse(Message("", {"utterances": ["test"]}))
s.converse(Message("", {"utterances": ["test"]}))
s.converse(Message("", {"utterances": ["test"]}))
s.converse(Message("", {"utterances": ["stop"]}))
# dictation stopped
s.converse(Message("", {"utterances": ["test"]}))

assert s.dictation_stack == ['test', 'test', 'test']
self.dictation_sessions[sess.session_id]["dictation_stack"].append(utterance)
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ovos-workshop>=5.0.0,<6.0.0
ovos-workshop>=6.0.0,<7.0.0
Loading