summaryrefslogtreecommitdiffstats
path: root/string_matcher.py
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2022-11-12 14:14:49 -0800
committeryum <yum.food.vr@gmail.com>2022-11-12 14:14:49 -0800
commit3b038d23ec7621e0164c1901b416bf77a27d8cf3 (patch)
treee92badc27b9a93bd7173de993da02a20a560a778 /string_matcher.py
parent8a7858ad4e965f5410faa4ae5e7ad4f79a280d43 (diff)
Clicking the left joystick resets the board.
* Increase no speech probability threshold. This is what was preventing short transcriptions from working. We rely more on the avg logprob filter now. * Remove string matching logic from transcribe. Now when we get 2 consecutive identical transcriptions, we commit the transcription. This *could* cause words to get cut off but in practice it doesn't seem to happen. * Fix steamvr joystick click detection. Moving the joystick would also fire the event, which is not correct. * Combine locks in transcribe.py. * Remove "clear" vocal control. * osc_ctrl.clear() resets last_message_encoded * Remove osc_ctrl.sendMessage (unused)
Diffstat (limited to 'string_matcher.py')
-rw-r--r--string_matcher.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/string_matcher.py b/string_matcher.py
index cf11133..1c6868e 100644
--- a/string_matcher.py
+++ b/string_matcher.py
@@ -78,13 +78,13 @@ def matchStrings(old_text: str, new_text: str, window_size = 3) -> str:
for j in range(0, 1 + len(new_text) - window_size):
new_slice = new_text[j:j + window_size]
cur_d = editdistance.eval(old_slice, new_slice)
- if cur_d <= best_match_d:
+ if cur_d < best_match_d:
best_match_i = i
best_match_j = j
best_match_d = cur_d
if DEBUG:
- print("optimum at old '{}'/{} new '{}'/{} d={}".format(
+ print("optimum at old '{}' i={} new '{}' j={} d={}".format(
old_slice, i, new_slice, j, cur_d))
old_prefix = old_text[0:best_match_i]
@@ -128,7 +128,7 @@ if __name__ == "__main__":
in1 = "Okay, what about now? Looks like it sort of works. Key word being sort of."
in2 = "okay what about now looks like it sort of works key word being sort of looks"
bad_out = "Okay, what about now? Looks like it sort of works. Key word being sort of works key word being sort of looks"
- good_out = "Okay, what about now? Looks like it sort of works. Key word being sort of looks"
+ good_out = "Okay what about now looks like it sort of works key word being sort of looks"
assert(matchStrings(in1, in2) == good_out)
in1 = "This repository can take"
@@ -137,10 +137,16 @@ if __name__ == "__main__":
good_out = "This repository contains the code for"
assert(matchStrings(in1, in2) == good_out)
+ in1 = "See something."
+ in2 = "See something. Say something."
+ bad_out = in1
+ good_out = in2
+ assert(matchStrings(in1, in2) == good_out)
+
in1 = "a" * 1000
in2 = "b" * 10 * 1000
# This should be fast (< 1 second)
- matchStrings(in1, in2)
+ #matchStrings(in1, in2)
print("Tests passed.")