dictation-toolbox/aenea

dictation client repeats voice entry in a forever loop begun with Shift_L on OSX 10.13.6

Opened this issue · 10 comments

Hi everyone,

Thanks for working on this project! I'm hopeful to start working again on writing in my emacs setup in mac after struggling with RSI.

My issue at the moment is with the aenea_client (but is related to the OSX server.)

Commands from Aenea are transmitting well. I just don't know how to do dictation? Do I need to use the dictation client? If so, I've run into the following forever loop with Shift_L and a repeat of the phrase I am saying e.g. "This is an example of the problem" which eventually freezes Dragon:

Shift_L This is an example of the problemShift_L This
is an example of the problemShift_L ...

What could be causing this?

Thanks!,
Maurice

Hi Dylan,
Apologies for my delay. Yes it seems to be related to 150.

As for the other (larger) issue, I’m not sure why Dragon seems to ignore the straight dictation and only communicates the commands to the client and server. I’m able to type characters on the host using the voice command “type Charlie” for instance, but no dictation comes through. Dragon seems to ignore this. Am I missing some grammar file—I’ve successfully installed the _multiedit.py for instance of Alex Roeper.

Any thoughts as to what to adjust? I’m using DNS 15 and Natlink victor.

All best,
Maurice

By dictation, do you mean like using Dragon like normal people do? For example open WordPad in the VM, say 'this is a test', and 'This is a test' should be typed into the WordPad window

or by dictation, do you mean using the multi-edit grammar? Firstly, have you tried using the _hello_world_aenea.py grammar? That one is much easier to understand how to use.

Thanks again for the response. I really appreciate it.

Yes. By “dictation” I mean using Dragon like normal people do. I’d like to be able to mix the long format prose dictation of Dragon with the use of custom commands of dragonfly grammars such as multi-edit to operate emacs in the host machine. I write complex Latex documents in emacs on my Mac for which dragonfly’s macros are very useful. Does this make sense?

I read that a “catch-all” command such as the one below could work for this long format dictation functionality, but I’m having trouble setting it up.

"": Text("%(text)s")

Thanks!

All the best,
Maurice

Thanks again for the response. I really appreciate it.

Yes. By “dictation” I mean using Dragon like normal people do. I’d like to be able to mix the long format prose dictation of Dragon with the use of custom commands of dragonfly grammars such as multi-edit to operate emacs in the host machine. I write complex Latex documents in emacs on my Mac for which dragonfly’s macros are very useful. Does this make sense?

I read that a “catch-all” command such as the one below could work for this long format dictation functionality, but I’m having trouble setting it up.

"": Text("%(text)s")

Thanks!

All the best,
Maurice

Your catchall command won't work as a mapping rule.

There are a few options here:

  1. The first option is to use the Aenea client, which I am using to write this message. I encountered quite a few bugs and limitations before and now on my mac, so i don't really recommend using this until we find a better way of implementing it.

  2. The second option is to simply open WordPad in the virtual machine, dictate your text, and then cut and paste it into Emacs manually. I find this works really well if you are dictating lots of prose and very little code.

  3. The third option is to, like you said, allow generic dictations in your grammar. I do this all the time when writing short snippets of code, like code comments, variable names and method names. You can have a look at the TextRule class in my grammar which I use for Vim which allows for generic dictation. You can see how it is used further down in the spec at line 690. Unfortunately I have not had time to refactor this file, but hopefully this will help you

Thanks for the clear response @dylan-chong . I have just one thought to add:

If I recall correctly, Tavis Rudd's setup used some kind of state synchronization between an emacs on his mac and on the windows vm. But AIUI he never got around to releasing his setup, which is really unfortunate, since I suspect it would put what I've built to shame.

If you're handy with elisp, maybe you could go down this route. All I know about his setup is from the Pycon talk forever ago though; I have not much to add.

@calmofthestorm While having state synchronisation between Emacs and the VM sounds like a call idea, I'm personally not a fan of it because it's such a coupled system. It only works for Emacs users, so isn't actually that useful for a lot of people coming across this repository. From what I've heard, Travis is set up was really coupled to his own personal set up, which was why it could not be released. Although I'm not a fan of this solution, I can't exactly think of a better one...

@mpomeran By the way, I've been wanting to improve the documentation for this repository for some time. I have been using this repository for every year, so I've forgotten how complex it is to learn how to use aenea set up, and how much I actually know. It would be great if you could take notes as you learn how to use this repository and put them somewhere?

Sure, I would be happy to do this. As an emacs user, I’m naturally interested in a better solution that allows me to dictate and control emacs in a more robust way. In particular, the question of mixing dragonfly grammars and normal dragon usage stands out as an essential feature that might really help users.