Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 06:03
    Danesprite commented #360
  • 05:06
    daanzu commented #360
  • 05:01
    daanzu commented #360
  • 03:19

    Danesprite on minor

    Update accessibility API docume… (compare)

  • Nov 28 23:57
    Danesprite commented #360
  • Nov 28 15:58
    LexiconCode commented #360
  • Nov 28 15:58
    LexiconCode commented #360
  • Nov 28 15:57
    LexiconCode commented #360
  • Nov 28 06:53
    Danesprite synchronize #360
  • Nov 28 06:39
    Danesprite commented #360
  • Nov 24 11:03
    daanzu commented #360
  • Nov 24 08:58
    daanzu synchronize #360
  • Nov 21 05:25
    Danesprite labeled #363
  • Nov 21 05:25
    Danesprite labeled #363
  • Nov 21 05:25
    Danesprite labeled #363
  • Nov 21 05:25
    Danesprite opened #363
  • Nov 15 11:08

    Danesprite on minor

    Improve X11 detection by checki… Change accessibility sub-packag… (compare)

  • Nov 15 07:25
    Danesprite commented #361
  • Nov 15 07:08
    Danesprite assigned #362
  • Nov 15 07:08
    Danesprite labeled #362
Vojtěch Drábek
@comodoro
I fail to see an official statement, but the repository seems to be alive. Anyway there is at the minimum a fork called Coqui, recently announced by some of the same people.
@daanzu You mean specifically lexicon for Kaldi? I will have a look, I only remember the Vystadial one, generated from its (small) dataset.
Dane Finlay
@Danesprite

@comodoro I wasn't aware of the Python winrt project. I would still prefer to just stick with SAPI 5.

Czech is listed as a supported eSpeak language BTW: http://espeak.sourceforge.net/languages.html

You can actually use eSpeak voices with SAPI 5 if you install the Windows version available on this page. I can use the Czech voice that way in Python, although I can't speak to how intelligible it is as I don't speak Czech. :-)

The voices are probably compiled as 32-bit, since I can't use them in 64-bit processes.

Vojtěch Drábek
@comodoro
Yes, that's no problem. As I say, not needed right now and I would kind of feel obliged to try it myself if it came to that. Right now I am using an English UI (on top of base Czech system because of internal windows-1250 ANSI encoding, still being in use in some applications). I have tried espeak before - terrible quality for Czech, but the grapheme to phoneme transcription, if expanded, looks usable (for Kaldi). Exceptions are a problem though.
David Zurow
@daanzu
@comodoro yes, the lexicon would need to be in the right format, but it should be easy to use the vystadial one. it is already in the kaldi repo
Vojtěch Drábek
@comodoro
@daanzu I see the generator https://github.com/daanzu/kaldi-fork-active-grammar/blob/master/egs/vystadial_cz/s5/local/phonetic_transcription_cs.pl, which is very simplistic and I suspect tailored for the Vystadial CZ dataset, but perhaps OK for a small prototype. I am starting to see why end-to-end is all the rage:) All right, do you think it would be better to try to improve upon the Vystadial recipe, or try a new one from some modern English recipe?
David Zurow
@daanzu
@comodoro the vystadial recipe isn't bad although it isn't completely up to date. It's probably worth a try, but it shouldn't be too hard to modify an english one either. I have a docker image for training I am working on, but it is still pretty janky
Dane Finlay
@Danesprite

@comodoro Okay then, fair enough. As Shervin said, eSpeak is quite robotic and isn't for everyone. Just thought I would mention it. There are also Czech voices for Festival.

If you do end up getting Czech STT working, I can help with adding Czech support for IntegerRefs.

@shervinemami Thanks for the info. I'm happy to add to Dragonfly a nice, extensible interface for text-to-speech, allowing use of Dragon, SAPI 5, eSpeak, Festival, pico, etc. It would also not be difficult to add a Speak action class. This functionality isn't a high priority, however.
Vojtěch Drábek
@comodoro
Robotic for English, terrible for Czech:)
I will first try some Kaldi tutorials and see how it goes.
Dane Finlay
@Danesprite
Ah, gotcha :)
Alex Boche
@alexboche
Not sure if i'm following the above discussion. If this talk of TTS is used for visual problems, it might be worth talking with Rudiger Wilke, he had a product called dragon echo for that http://www.rwilke.de/dragonecho/ . Even if his thing isn't what's needed per se, he might have some ideas.
Dane Finlay
@Danesprite

@alexboche The Dragonfly TTS functionality discussed above is fairly simplistic. At present, it only consists of the engine.speak(text) method which synthesises text strings into speech. Beyond a Speak action class that does the same thing and better utilisation and choice of the TTS back-end, I don't think additional TTS functionality should be added into Dragonfly.

Dedicated screen reader software like DragonEcho would be much more appropriate for users with visual impairments.

Dane Finlay
@Danesprite

@/all Dragonfly2 version 0.30.0 has now been released, as of 21 March. The additions, changes and fixes are listed in the changelog here: https://dragonfly2.readthedocs.io/en/latest/changelog.html

You can upgrade by running pip install --upgrade dragonfly2.

Thanks very much to everyone who contributed! My apologies for the long gap between this release and the last one.

@lunixbochs Sorry that the Talon integration (PR #326) was not included in this version. I haven't tested the changes sufficiently yet.
David Zurow
@daanzu
@Danesprite thanks for all your work maintaining!
tripfish
@tripfish
Thanks! :+1:
Dane Finlay
@Danesprite
No worries. :-)
timoses
@timoses:matrix.org
[m]
Shouldn't it be possible calling Key from a Function Action? It somehow does not seem to execute Key.. It does if I use Key directly in the Mapping..
    def omgzo(**test):
        print('uffi')
        Key('j')

    class TmuxRule(MappingRule):

        mapping = {
            "pane (<dir>|<n>)":
                #Function(lambda **test: Key('j'))
                Function(omgzo)
                #Key('j')
(It does print 'uffi')..
LexiconCode
@LexiconCode
@timoses:matrix.org When utilizing dragonfly within functions add .execute() after the actionKey('j').execute() . You can execute python files with dragonfly without speech engine and it will execute the actions along with any other code. Example below:
from dragonfly import Key

def omgzo():
    print('uffi')
    Key('j').execute()

omgzo()
timoses
@timoses:matrix.org
[m]
Aw ty. I knew there was something in the bushes : )
Dane Finlay
@Danesprite
I have released Dragonfly2 version 0.30.1, which includes fixes for some DNS dictation formatting bugs.
LexiconCode
@LexiconCode
@Danesprite Awesome! Congrats another release!
Dane Finlay
@Danesprite
:)
DanKaplanSES
@DanKaplanSES
image.png
I restarted my computer and now get this error message when I start Dragon:
should I follow those instructions or will that mess things up?
Dane Finlay
@Danesprite

@tieTYT Haven't seen that error before, thanks for mentioning it on here and for the KB solution link :+1:

I don't know about Dragon, but Compatibility Mode shouldn't cause issues with pywin32, Natlink or Dragonfly since these were written to work with older (then new) versions of Windows.

Quintijn Hoogenboom
@quintijn
I have not seen this message before either. Sorry...
Vojtěch Drábek
@comodoro
Is there an easy equivalent to Choice with identical mapping, i.e. 'a': 'a' etc?
Which seems redundant
Vojtěch Drábek
@comodoro
Hmm, looks like List:)
Dane Finlay
@Danesprite
@comodoro List works. You could also use dictionary comprehension:
Choice("choice", {key:key for key in [
    "a", "b", "c"
]})
Vojtěch Drábek
@comodoro
Actually it works with ListRef (List is not instance of ElementBase) which itself works on top of List, so there might be room for an element combining them? Using Choice this way is OK, but I suppose not that Pythonic.
Vojtěch Drábek
@comodoro
By the way Choice could just also accept a list (Sorry if it looks like something important and thanks for the suggestion, it is just semantics)
Stretching it too far, maybe even iterable:-)
David Zurow
@daanzu
Ha, I encountered just this question a couple nights ago. I eventually just used a dictionary comprehension, but I do wonder about adding something to dragonfly. I maybe lean towards adding a ChoiceList, so that Choice keeps its type checking, but I'm not sure.
Dane Finlay
@Danesprite

Yes, right, it would be ListRef not List. I have no objection to a simple ChoiceList element. It would have to be implemented differently to Choice, since the dictionary keys given to Choice elements are in fact used as Compound element specs, so that, for example, the following element's value is logically decoded to "a", "b" or "c":

Choice("letter", {
    "alpha|a": "a",
    "bravo|b": "b",
    "charlie|c": "c",
})

I guess it should work more like this instead:

Compound(spec="a|b|c", name="letter")

# Or

Compound(spec="|".join(["a", "b", "c"]), name="letter")
Dane Finlay
@Danesprite
Choice could probably just accept lists too and handle them as above.
Vojtěch Drábek
@comodoro
That would be my first pick (because there is very few typing or thinking involved), I don't know what the general stance on different types of the same parameter is though.
Dane Finlay
@Danesprite
Yes, changing Choice to accept lists and tuples seems like the best option here. I have no problem with the parameter having different types.
LexiconCode
@LexiconCode
Thinking on this it would be really nice improvement. I assume it wouldn't be mutable if the list is updated.
David Zurow
@daanzu
This would be a nice quality-of-life improvement.
@LexiconCode It would only be mutable if ListRef was used underneath.
Dane Finlay
@Danesprite
Agreed, I'll add this in the next release. No, it would not be mutable since this would use Literal, not ListRef.
Dane Finlay
@Danesprite
@tripfish Yeah, time will tell what this means for Dragon. As Aaron has said in a few other channels, Microsoft and Nuance have had a close working relationship for a while. It seems that this acquisition is more related to Nuance's cloud solutions.