summary refs log tree commit diff
AgeCommit message (Collapse)Author
2025-09-06the vanity commit (change kaylee to pollyana everywhere)Irene Knapp
except the copyright notices, those need more care and attention Force-Push: yes Change-Id: Ibddfb1b7a0edbb0d4adb6cfaf0ac4239537ade2f
2025-09-06add a nix package for the now-forked pollyanaIrene Knapp
the contents of the patch against upstream kaylee are now applied to the pollyanna source; the patch is retained in case it's ever useful to build upstream Force-Push: yes Change-Id: I18df6c5b48ee1e767cff259bd323682c8dd693ff
2025-09-06Merge kaylee into pollyana, yayIrene Knapp
(hope this works. never done it in git before) Force-Push: yeah... Change-Id: I71c8570d723808ccc8fbffea41c0722a61e1e1c0
2025-09-06move all the Kaylee code into a subdirectoryIrene Knapp
this is preparation for merging it into the Pollyana repo Force-Push: yes Change-Id: I155624ba39a0d212c999f38aaf2de2cd62b7aa49
2025-09-06initial package of kayleeIrene Knapp
Force-Push: working CI? that's unpossible Change-Id: I03dfbbcff92f2166616d26d4c3d556261a327d8b
2016-07-03Fixed recognition of "forty"Clayton G. Hobbs
I spelled it "fourty", which tricks the lmtool into making it much harder to recognize the word. Now it's spelled "forty", which makes it much easier to understand.
2016-06-29Merge branch 'master' of https://github.com/Ratfink/kayleeClayton G. Hobbs
2016-06-29Put all number-words on one line in the corpusClayton G. Hobbs
This makes pocketsphinx pick up way fewer false-positives of single number-words as recognised sentences. It doesn't seem to make any difference in anything else, but fewer false-positives is always nice.
2016-05-31A bit of cleanup in the READMEClayton G. Hobbs
It actually does do the things claimed in the first sentence, so don't use the future tense. There's no need to tell the user the details of intermediate steps in generating the language. All the user needs to know is that it uses the network to update the language model when it starts.
2016-05-17New icons!Clayton G. Hobbs
They still need work of course, since I'm a programmer and not an artist. The new icons of course are Kaylee's parasol, and anyone who doesn't know that needs to watch Firefly.
2016-05-16Remove unused codeClayton G. Hobbs
2016-05-16Renamed Config.parser -> Config._parserClayton G. Hobbs
The argument parser isn't part of the API of the Config class, so now its name reflects that.
2016-05-15Remove reference to the old commands fileClayton G. Hobbs
Commands aren't stored in a special file anymore, and Kaylee never tries to look at that file. Therefore, there's no need for the Config object to keep that file's path, and so the path has been removed.
2016-05-15Formatting and documentationClayton G. Hobbs
Added some blank lines and wrapped some long lines to be closer to PEP 8 compliance. Improved docstrings in NumberParser class. Added docstrings for undocumented code and removed a TODO message that no longer applies.
2016-05-15Install systemd unit file from setup.pyClayton G. Hobbs
Now distributions created from setup.py put the systemd unit file in the correct location for units provided by packages. It may then be enabled and started by the user with systemctl. Closes #11.
2016-05-14Add a systemd service file for starting KayleeClayton G. Hobbs
Next I need to make the setup.py script install it. It's meant to be a user service (installed to /usr/lib/systemd/user/), since Kaylee currently does not support being run outside of a normal user account. Also, it would be really nice to make it possible to reload the service once it has been started. This will require some changes to Kaylee to support synchronously reloading configuration. I understand that you aren't supposed to reload units asynchronously, and I *really* can't trust Kaylee to reload succinctly since reloading configuration may require contacting a remote server until #10 is implemented. Configuration reloading may be a separate issue from the systemd unit file, but I'd like to see it by version 0.2.
2016-04-30Update version number to 0.1.1Clayton G. Hobbs
Since I fixed a critical bug, I think a new version number is in order.
2016-04-30Update to work with the latest pocketsphinxClayton G. Hobbs
Apparently CMU thinks it's a good idea to release a new version of a piece of software that breaks existing APIs without even changing the version number. I find this idea to be highly dubious at best. Nevertheless, I have updated Kaylee to support the latest version of pocketsphinx.
2016-04-30Add a setup.py script for installationClayton G. Hobbs
I finally got around to learning how to make a setup.py script. I have finally blossomed into a mature adult.
2016-04-30Add packaging files to .gitignoreClayton G. Hobbs
2016-04-30Convert README to reStructuredTextClayton G. Hobbs
More Python-friendly, yada yada yada.
2016-04-30Tell users to copy config, not move itClayton G. Hobbs
2016-02-16Reorganize classes into a "kayleevc" packageClayton G. Hobbs
That's "Kaylee Voice Command" if you didn't figure it out. I think everything still works properly, but I'll do more testing later to verify.
2016-02-12Remove __future__ print_functionClayton G. Hobbs
It turns out I'm using Python-3-specific features elsewhere in the code, so there's no reason to continue partially trying to support Python 2.
2016-02-12Only write the strings file if necessaryClayton G. Hobbs
Now we check a hash of the voice commands before writing the strings file to reduce how much we write to the hard disk. In implementing this, I realized that some code was being duplicated in an easily fixable way, so I created a Hasher object that keeps track of the hash.json file. Resolves #6
2016-02-04Open all files using with blocksClayton G. Hobbs
I truly am a modern Python man.
2016-02-04Removed unused import in kaylee.pyClayton G. Hobbs
2016-02-04Moved command configuration to options.jsonClayton G. Hobbs
It makes sense to put all the configuration in one place, no?
2016-02-03Wrap long lines in kaylee.pyClayton G. Hobbs
2016-02-03A few corrections and formatting changes to READMEClayton G. Hobbs
Man, nvim in nvim is trippy. What's the right way to do this?
2016-01-02Update copyright for 2016Clayton G. Hobbs
2016-01-02Rewrote NumberParser.parse_all_numbers()Clayton G. Hobbs
Its control flow was confusing before; now it's much more straightforward. We make a string representing classes of words, split that by a regular expression for number words, then parse each number and build up our return string and list. It works just as well as the previous method, is a bit shorter, and I feel that it's clearer as well.
2015-12-30Fixed the guaranteed-dictionary-update bugClayton G. Hobbs
It wasn't actually guaranteed, it turns out. I was iterating over dictionary keys, which is done in arbitrary order. The result was that in different executions of the program, the corpus was generated differently, so the hashes differed, and the language had to be updated. Sorting the keys before adding them to the list of number-words fixed the problem.
2015-12-30Added number parsing capabilitiesClayton G. Hobbs
See commands.tmp for an example. It's pretty neat, but it could still use some work. I thought of a really clever way to parse numbers, better than the one I came up with last night, but since I have a working implementation now I figure I'd better commit it. We have a new bug which causes the dictionary to be updated every time the program starts. I hope I didn't force that to happen last night or something, but I have a vague feeling I did.
2015-12-27Refactored a couple regular expressionsClayton G. Hobbs
2015-12-27Removed executable permissions from recognizer.pyClayton G. Hobbs
2015-12-27Changed icons for KayleeClayton G. Hobbs
This really is not Blather anymore.
2015-12-27Rename blather.py to kaylee.pyClayton G. Hobbs
2015-12-27Rename license file to COPYINGClayton G. Hobbs
2015-12-27Mention the new dependency in READMEClayton G. Hobbs
2015-12-27Rewrote language_updater.sh in PythonClayton G. Hobbs
At the same time, I moved the logic to check if the language should be updated into the new LanguageUpdater class. The README has been updated to reflect the fact that you no longer need to do any of this manually ever.
2015-12-27Removed prints from config.pyClayton G. Hobbs
2015-12-27Moved paths to Config classClayton G. Hobbs
Paths of important files and directories are part of the program's configuration, no? We're making better use of XDG paths now. Only configuration-y things go in $XDG_CONFIG_HOME now, with cache-y and data-y things going in the appropriate places instead of just being crammed in with configuration.
2015-12-27Quieter; reorganize gst pipeline codeClayton G. Hobbs
Removed a bunch of print statements that looked like they were added for debugging, then never removed. Reorganized GStreamer pipeline code so that all configuration is done when the pipeline is created.
2015-12-27Improved config/argument behaviourClayton G. Hobbs
The configuration file is now properly overridden by argument parsing. This was accomplished by loading the config file, then treating the specified options as a namespace for the ArgumentParser. This makes things from the config file get overridden iff they were specified on the command line (not simply from defaults set in the ArgumentParser).
2015-12-27Minor formatting improvementsClayton G. Hobbs
2015-12-27Replaced last YAML bit with JSONClayton G. Hobbs
Hashes are now stored in hash.json, not hash.yaml. Also, we use the XDG configuration directory rather than assuming we should use ~/.config/. Maybe I should also make use of XDG data and/or cache directories.
2015-12-27Beginning work moving from YAML to JSONClayton G. Hobbs
Mostly working for the options file now. Still some difficulty with command-line arguments, though; they're overriding the config file even when not specified. If I made them simply not get stored at all when not specified, there would be further problems when a configuration file is not present. Maybe I should make a whole new class to handle this.
2015-12-27Removed override command line optionClayton G. Hobbs
Personally, I don't see a point to a switch that must be turned on to make all other switches work at all. It's a confusing behaviour that made me think I somehow broke the GUIs.
2015-12-27Work towards Python 3 supportClayton G. Hobbs