Michael Sheldon's Stuff

Michael Sheldon (mike at mikeasoft dot com)

December 30, 2017

Speech Recognition – Mozilla’s DeepSpeech, GStreamer and IBus
Mike @ 9:13 pm

Recently Mozilla released an open source implementation of Baidu’s DeepSpeech architecture, along with a pre-trained model using data collected as part of their Common Voice project.

In an attempt to make it easier for application developers to start working with the DeepSpeech model I’ve developed a GStreamer plugin, an IBus plugin and created some PPAs. To demonstrate what’s possible here’s a video of the IBus plugin providing speech recognition to any application under Linux:




Video of DeepSpeech IBus Plugin

GStreamer DeepSpeech Plugin

I’ve created a GStreamer element which can be placed into an audio pipeline, it will then report any recognised speech via bus messages. It automatically segments audio based on configurable silence thresholds making it suitable for continuous dictation.

Here’s a couple of example pipelines using gst-launch.

To perform speech recognition on a file, printing all bus messages to the terminal:

gst-launch-1.0 -m filesrc location=/path/to/file.ogg ! decodebin ! audioconvert ! audiorate ! audioresample ! deepspeech ! fakesink

To perform speech recognition on audio recorded from the default system microphone, with changes to the silence thresholds:

gst-launch-1.0 -m pulsesrc ! audioconvert ! audiorate ! audioresample ! deepspeech silence-threshold=0.3 silence-length=20 ! fakesink

The source code is available here: https://github.com/Elleo/gst-deepspeech.

IBus Plugin

I’ve also created a proof of concept IBus plugin which allows speech recognition to be used as an input method for virtually any application. It uses the above GStreamer plugin to perform speech recognition and then commits the text to the currently focused input field whenever a bus message is received from the deepspeech element.

It’ll need a lot more work before it’s really useful, especially in terms of adding in various voice editing commands, but hopefully it’ll provide a useful starting point for something more complete.

The source code is available here: https://github.com/Elleo/ibus-deepspeech

PPAs

To make it extra easy to get started playing around with these projects I’ve also created a couple of PPAs for Ubuntu 17.10:

DeepSpeech PPA – This contains packages for libdeepspeech, libdeepspeech-dev, libtensorflow-cc and deepspeech-model (be warned, the model is around 1.3GB).

gst-deepspeech PPA – This contains packages for my GStreamer and IBus plugins (gstreamer1.0-deepspeech and ibus-deepspeech). Please note that you’ll also need the DeepSpeech PPA enabled to fulfil the dependencies of these packages.

I’d love to hear about any projects that find these plugins useful 🙂


65 Comments »

  1. I love you.

    Comment by grey — December 31, 2017 @ 4:41 am

  2. This seems really cool is there any python bindings for your STT project it would be awesome if I can get this to work with mycroft

    Comment by lifre — December 31, 2017 @ 6:02 am

  3. There are direct python bindings for deepspeech (simply pip install deepspeech), however these require you to do all the audio input and processing yourself, so you might find it easiest to use my GStreamer plugin with the GStreamer python bindings. I’ve added a quick python example to the repository which you can view here:

    https://github.com/Elleo/gst-deepspeech/blob/master/examples/python/print_speech.py

    It takes input from the default microphone and prints text out to the console. Hope that helps 🙂

    Comment by Mike — December 31, 2017 @ 2:54 pm

  4. Fantastic work! I was hoping something like this would be created!

    Comment by en3r0 — December 31, 2017 @ 9:39 pm

  5. This is completely irrelevant to the (fascinating) article, but I wanted to ask if you’ve considered working on TizMee again, but for UBports, postmarketOS and Nemo/Sailfish?

    The TizMee demo seems really useful, and now that Tizen has native versions of Here Maps, WhatsApp, FB, IG etc, TizMee could patch the app gap (which for me is just those applications). It would also have far less overhead than using the Android versions of these apps on a compatibility layer.

    Many thanks!

    Comment by JS — January 2, 2018 @ 11:50 am

  6. […] Speech recognition on Linux? […]

    Pingback by Late Night Linux – Episode 28 – Late Night Linux — January 9, 2018 @ 3:29 am

  7. This is great! Thank you. Speech Recognition would fill in one of the few gaps that Linux still has. The only reason I’m still using Microsoft is because of Dragon Naturally Speaking (DNS) – great software but does not behave very well in Wine. If anyone would start a crowdfunding campaign to develop a DNS-like functionality (i.e. a stand-alone linux speech recognition application that also allows dictation in other applications) I’d happily and generously support. Will keep an eye on the progress.

    Comment by Elfons — January 11, 2018 @ 2:03 pm

  8. […] in applications. [Michael Sheldon] aims to fix that — at least for DeepSpeech. He’s created an IBus plugin that lets DeepSpeech work with nearly any X application. He’s also provided PPAs that should make it easy to install for Ubuntu or related […]

    Pingback by Speech Recognition For Linux Gets A Little Closer - Big4All.Org — January 18, 2018 @ 3:06 am

  9. […] [Michael Sheldon] aims to fix that — at least for DeepSpeech. He’s created an IBus plugin that lets DeepSpeech work with nearly any X application. He’s also provided PPAs that should make it easy to install for Ubuntu or related […]

    Pingback by Speech Recognition For Linux Gets A Little Closer – High Tech Newz — January 18, 2018 @ 3:29 am

  10. […] [Michael Sheldon] aims to fix that — at least for DeepSpeech. He’s created an IBus plugin that lets DeepSpeech work with nearly any X application. He’s also provided PPAs that should make it easy to install for Ubuntu or related […]

    Pingback by Speech Recognition For Linux Gets A Little Closer – Hacking Space — January 18, 2018 @ 4:33 am

  11. […] [Michael Sheldon] aims to fix that — at least for DeepSpeech. He’s created an IBus plugin that lets DeepSpeech work with nearly any X application. He’s also provided PPAs that should make it easy to install for Ubuntu or related […]

    Pingback by Speech Recognition For Linux Gets A Little Closer – Central Geek — January 18, 2018 @ 5:23 am

  12. […] in applications. [Michael Sheldon] aims to fix that — at least for DeepSpeech. He’s created an IBus plugin that lets DeepSpeech work with nearly any X application. He’s also provided PPAs that should make it easy to install for Ubuntu or related […]

    Pingback by Speech Recognition for Linux Gets a Little Closer – Nerd Junkie — January 18, 2018 @ 5:03 pm

  13. Hi, Michael ,
    Is it possible to replace the alphabe.txt with UTF-8 Chinese character ( in my case, about 3000 characters), and start to train a Chinese recognizer ?
    I did it, but following error messages appeared :
    return self._str_to_label [string ]
    KeyError: u ‘ ‘

    Comment by shinki — January 22, 2018 @ 12:47 pm

  14. Hi shinki,

    You’d probably be best asking that sort of question on the Common Voice forums as that’s more specific to training Deep Speech rather than the plugins I’ve created on top of it: https://discourse.mozilla.org/c/voice

    Comment by Mike — January 22, 2018 @ 1:52 pm

  15. Tried installing this on debian stretch. Debs seem to have installed ok but when I run the command to write out to the console I get this error. What am I missing?

    WARNING: erroneous pipeline: no element “deepspeech”

    Comment by dodddummy — February 1, 2018 @ 3:34 am

  16. Hi doddummy,

    It’s possible that debian might install its GStreamer plugins to a different location, what does ‘dpkg –listfiles gstreamer1.0-plugins-good’ show as the path that plugins (.so files) are being installed into?

    If you could also try deleting your plugin registry and rerunning the command with the environment variable GST_DEBUG=5 set and uploading the output to a pastebin I can take a look and see if there are any errors loading the plugin.

    Comment by Mike — February 1, 2018 @ 11:05 am

  17. Hi Mike,
    /usr/lib/x86_64-linux-gnu/gstreamer-1.0
    /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgst1394.so
    /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstaasink.so

    I’ll delete the plugin directory as you suggest tomorrow.

    Comment by dodddummy — February 1, 2018 @ 12:21 pm

  18. Hi dodddummy,

    Just to be clear, I suggested deleting the plugin *registry* (a single file in your home directory, iirc in ~/.gstreamer-1.0/ which then gets regenerated automatically) not the plugin directory (/usr/lib/x86_64-linux-gnu/gstreamer-1.0). That’s an important difference 😉

    Comment by Mike — February 1, 2018 @ 1:49 pm

  19. Hi Mike,
    I deleted the plugin registry. Was in ~/.cache/gstreamer-1.0 and ran with GST_DEBUG=5 set. Here’s the output: https://pastebin.com/jJZb8v4p

    Comment by dodddummy — February 2, 2018 @ 3:27 am

  20. Hi dodddummy,

    That log seems to be truncated, it only goes up to time 0:00:00.006663655 (and that line gets cut short), there should be a considerable amount more in a full log at debug level 5. Perhaps try in the Ubuntu pastebin: https://pastebin.ubuntu.com/ in case pastebin.com cuts things short?

    Comment by Mike — February 2, 2018 @ 11:33 am

  21. Great work. Speech recognition is really necessary for Linux to compete with Windows and Android.

    Is there any chance of a PPA for Ubuntu 16.04 – it is the LTS version and will outlive 17.10 ?

    Comment by elpidiovaldez — February 4, 2018 @ 2:50 pm

  22. Great work.
    I’m a newbie. Is it possible for someone to take a step-by-step how to install all IBus Plugin and GStreamer DeepSpeech Plugin packages on linux?

    Grateful.

    Comment by jonh — February 13, 2018 @ 9:52 pm

  23. Hi! I tried to install your package by following the instructions given at https://github.com/Elleo/gst-deepspeech/blob/master/INSTALL but seems like there is no configure file in the repository…

    Comment by Mark2 — February 20, 2018 @ 8:50 am

  24. Hi Mark2,

    Sorry about that, you’ll need to run ./autogen.sh first to create the configure file, I’ll see about updating the documentation to make that clear.

    Cheers,

    Mike

    Comment by Mike — February 20, 2018 @ 12:55 pm

  25. Hi Mike!

    Thanks for the quick response. I progressed a little bit but got stuck after running make-command. I get the error message:
    gstdeepspeech.cc:63:24: fatal error: deepspeech.h: No such file or directory
    Although, I have Deep Speech installed on my machine (pip install deepspeech). Should I link it to C-compiler somehow, or what should be done?

    Thanks!

    Comment by Mark2 — February 21, 2018 @ 6:46 am

  26. Hi Mike,

    I too have the same issue while running the make command,

    gstdeepspeech.cc:63:10: fatal error: deepspeech.h: No such file or directory

    Can you please replay how to fix this.
    Thanks!!

    Comment by Navan — February 21, 2018 @ 2:38 pm

  27. Hi Mark2 and Navan,

    deepspeech.h is part of DeepSpeech’s native-client package (pip will only install the python bindings, not the C development headers), you need to either install it to your system include path (e.g. /usr/include) or tell autotools where to find it by setting the environment variable:

    CPPFLAGS=-I/path/to/native-client/

    You’ll also need to point LD_LIBRARY_PATH to a compiled version of libdeepspeech.so

    If you’re on an Ubuntu system you can just install libdeepspeech-dev from my PPA.

    Cheers,
    Mike

    Comment by Mike — February 21, 2018 @ 3:05 pm

  28. Hi! I really like the initiative but the execution leaves something to be desired. I have tried both installation from ppa and source and I am coming up short. The repository really needs a proper installation guide for a common linux distro (Ubuntu?), including all dependencies used for the build process itself and a step by step build instruction. As it stands, I think I will try to use the Deepspeech API directly instead, as I cannot figure out how to get this installed.

    Comment by Falense — February 22, 2018 @ 6:46 am

  29. To be a bit more specified, the PPA complains about unsigned packages and a missing public key (are the packages not signed?) and the configuration utility required to run autoconf appears to not be bundled with major linux distros.

    Comment by Falense — February 22, 2018 @ 6:48 am

  30. Hi Falense,

    Did you use add-apt-repository to enable the PPAs? As this should automatically fetch the key for you.

    The following packages will provide everything you need to build: build-essential, pkg-config, libgstreamer1.0-dev, libgstreamer-plugins-base1.0-dev, libdeepspeech-dev (from my DeepSpeech PPA)

    Cheers,
    Mike

    Comment by Mike — February 22, 2018 @ 4:14 pm

  31. Hi Mike,

    Thank you for the suggestion.

    add-apt-repository does not work on Linux Mint 18.3. Error message is “Cannot add PPA: This PPA does not support xenial”. Adding the PPA manually gives the error with lacking signing key. Do you have a link to the public key somewhere?

    Also I think you need the packages autoconf, automake, libtool as well (at least on Linux Mint). I got one step further than most here (past missing headers). Seems I need the Deepspeech libraries too, I am missing -ldeepspeech, -ldeepspeech_utils and -ltensorflow_cc (even though I include the directory which has deepspeech in LD_LIBRARY_PATH)

    Best

    Comment by Falense — February 23, 2018 @ 2:37 am

  32. Hi Mark2,

    I tried installing it from the your PPA. But faced the following error,
    GStreamer-WARNING **: Failed to load plugin ‘/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstdeepspeech.so’: libtensorflow_framework.so: cannot open shared object file: No such file or directory
    can you suggest how to go ahead.

    Thanks!

    Comment by Navan — February 23, 2018 @ 5:18 am

  33. Hi Mike,

    can you help with the above error.
    Thanks!

    Comment by Navan — February 23, 2018 @ 5:20 am

  34. Hi Falense,

    The signing key is available on the PPA page, just click the “Technical details about this PPA” link to reveal it. I’m afraid I only compiled packages for Artful due to the PPA size restriction preventing from uploading more than one set (the limit on this PPA has been raised now though so I’ll see about making some builds for Xenial as well).

    Navan – It’s possible I might need to add that to the package, I’ll investigate this weekend.

    Comment by Mike — February 23, 2018 @ 3:08 pm

  35. Penguins love things this cool. This needs to be integrated into 18.04. Could be a defining feature upgrade for the community

    Comment by Adam — February 25, 2018 @ 3:32 am

  36. I am having a similar issue to dodddummy with an error:
    “`
    gst-launch-1.0 -m pulsesrc ! audioconvert ! audiorate ! audioresample ! deepspeech silence-threshold=0.3 silence-length=20 ! fakesink
    WARNING: erroneous pipeline: no element “deepspeech”
    “`
    Now I did notice that whilst trying a random GST command to rebuild the cache – which was at both `~/.gstreamer-1.0` and at `~/.cache/gstreamer-1.0` – the following error:
    “`
    (gst-plugin-scanner:4459): GStreamer-WARNING **: Failed to load plugin ‘/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstdeepspeech.so’: libtensorflow_framework.so: cannot open shared object file: No such file or directory
    “`
    This error does not persist once the scanner has been run once. `libtensorflow_framework.so` is not installed by any package nor present on my system.
    I looked at the tensorflow github page etc. but could not find how to build and install it.
    Exporting GST_DEBUG=5 and rerunning pipeline produces the following error: http://paste.ubuntu.com/p/vPNMTPvXWw/

    The intended use of this is on a small laptop to help my highly dyslexic daughter with her schoolwork – very excited about the offline nature of this as it is likely that we will be able to use this in school without drama 8)

    Comment by Jasper — March 5, 2018 @ 7:23 am

  37. Hi Jasper,

    Apologies, I meant to look into that last weekend but it slipped through the net; I’ll try and find some time tonight to update the packaging to including that missing library.

    Cheers,
    Mike

    Comment by Mike — March 5, 2018 @ 11:06 am

  38. Hi Mark, Jasper,

    I’ve published some updated packages now which include libtensorflow_framework.so, so if you upgrade this should now be working. You will probably need to clear out your gstreamer registry cache again for it to attempt to load the plugin again though.

    Cheers,
    Mike

    Comment by Mike — March 6, 2018 @ 11:27 am

  39. Thanks Mike,
    That did the trick for the gst-launch method.
    Now I cannot get the i-bus input to work. I can see the python i-bus spawns when deepspeech is added as an input method, but I cannot figure out how to trigger it. Every one and then it appears to trigger, uses a ton of CPU (locks up the computer) and returns nothing – again I cannot see the gst pipeline running.

    For some reason I had assumed that running the trained model would be relatively resource light to run – seems I am wrong. What sort of spec would you expect to need for this to work smoothly? (the planned target was an ancient intel atom laptop…)

    Many thanks 8)

    Comment by Jasper — March 7, 2018 @ 9:03 am

  40. Hi Jasper,

    Yes, I’m afraid the computational requirements are still quite high, on my i7 laptop without GPU acceleration its slightly slower than real-time. As far as I’m aware no optimisation has been done on this yet, so there’s probably some low hanging fruit that will make big improvements in future versions of the model.

    Comment by Mike — March 7, 2018 @ 7:27 pm

  41. Hi Mike,

    I tried to install your gstreamer plugin but when I run ./autogen.sh, I get this error:

    ./autogen.sh: 6: ./autogen.sh: autoreconf: not found
    autogen.sh failed

    What did I miss?

    Best,
    Nina

    Comment by Nina — March 27, 2018 @ 9:05 am

  42. Hi Nina,

    No problem, you just need to install autoconf (and autotools if you don’t already have it), if you’re on a Debian or Ubuntu based distro the packages are called autoconf and autotools-dev

    Cheers,
    Mike

    Comment by Mike — March 27, 2018 @ 9:19 am

  43. Hi Mike,

    thanks for the quick response! It worked.
    Now, when executing the make command I ran into the same error as #26:
    gstdeepspeech.cc:63:24: fatal error: deepspeech.h: No such file or directory

    I read your answer above but since I am a beginner I could not exactly figure out what to do next.
    Just to structure my thoughts:

    I have deepspeech running (pip installed).
    I understood that I have to install the native client from the deepspeech repository which is very hard to understand through their confusing readme.
    I need to set CPPFLAGS=-I/path/to/native-client/ after native client is installed and then set LD_LIBRARY_PATH to a compiled version of libdeepspeech.so.

    May you guide me through the installation a bit?

    Thanks in advance!!

    Nina

    Comment by Nina — March 27, 2018 @ 10:11 am

  44. Hi Nina,

    Before we go any further, what distribution are you using? As there are some precompiled packages for Ubuntu which might make things simpler if that’s an option?

    Cheers,
    Mike

    Comment by Mike — March 27, 2018 @ 4:51 pm

  45. Hi Mike,

    I’m using Ubuntu 16.04..
    Can I use your precompiled package even if I’m not on 17.10 as you mention above?

    Best,
    Nina

    Comment by Nina — March 29, 2018 @ 7:18 am

  46. Hi,

    I’m getting this error when performing apt-get update after downloading your PPAs:

    W: The repository ‘http://ppa.launchpad.net/michael-sheldon/deepspeech/ubuntu xenial Release’ does not have a Release file.
    N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
    N: See apt-secure(8) manpage for repository creation and user configuration details.
    E: Failed to fetch http://ppa.launchpad.net/michael-sheldon/deepspeech/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
    E: Some index files failed to download. They have been ignored, or old ones used instead.

    An explanation about how to get your plugins working is highly appreciated!

    Looking forward,
    Nina

    Comment by Nina — March 29, 2018 @ 12:54 pm

  47. Hi Nina,

    You’re getting those errors due to there not being builds for xenial at the moment. Now that there’s more space available in the PPA I’ll see about setting up a xenial build (hopefully tonight, otherwise over the weekend).

    Cheers,
    Mike

    Comment by Mike — March 29, 2018 @ 2:38 pm

  48. Hi Nina,

    Sorry for the delay, the xenial builds are ready in the PPA now, so you should be able to just apt install gstreamer1.0-deepspeech.

    Cheers,
    Mike

    Comment by Mike — April 4, 2018 @ 7:36 pm

  49. Hi Mike,

    The Xenial build has failed, so it not possible to install it.

    Cheers,
    Luuk

    Comment by Luuk — April 9, 2018 @ 6:48 pm

  50. Hi Luuk,

    Thanks for spotting that, the Xenial build is fixed now.

    Cheers,
    Mike

    Comment by Mike — April 9, 2018 @ 11:30 pm

  51. Thanks Mike! Are you planning on providing the ibus plugin for xenial as well?

    Comment by Luuk — April 10, 2018 @ 7:02 pm

  52. Hi Luuk,

    Sure thing, I’ve now built it for xenial as well, so you should be able to just ‘apt install ibus-deepspeech’

    Cheers,
    Mike

    Comment by Mike — April 11, 2018 @ 11:12 pm

  53. Hi Mike,
    I get the following error when trying ./autogen.sh, could you please help me with this:

    gstdeepspeech.cc: In function ‘gboolean gst_deepspeech_sink_event(GstPad*, GstObject*, GstEvent*)’:
    gstdeepspeech.cc:357:100: error: ‘gst_buffer_copy_deep’ was not declared in this scope
    epspeech->thread_pool, (gpointer) gst_buffer_copy_deep(deepspeech->buf), NULL);
    ^
    gstdeepspeech.cc: In function ‘GstFlowReturn gst_deepspeech_chain(GstPad*, GstObject*, GstBuffer*)’:
    gstdeepspeech.cc:413:98: error: ‘gst_buffer_copy_deep’ was not declared in this scope
    epspeech->thread_pool, (gpointer) gst_buffer_copy_deep(deepspeech->buf), NULL);
    ^
    Makefile:464: recipe for target ‘libgstdeepspeech_la-gstdeepspeech.lo’ failed
    make[2]: *** [libgstdeepspeech_la-gstdeepspeech.lo] Error 1

    Thank you in advance.

    best,
    Mary

    Comment by Mary — April 17, 2018 @ 7:38 am

  54. Hi Mary,

    What version of GStreamer are you compiling against? It looks like gst_buffer_copy_deep was introduced in 1.6, so if it’s an earlier version I’m afraid you’ll need to upgrade first.

    Cheers,
    Mike

    Comment by Mike — April 17, 2018 @ 10:11 am

  55. Hi Mike,

    Thanks a lot! upgrading solved the issue! But like other people I get this error now:
    WARNING: erroneous pipeline: no element “deepspeech”

    Comment by Mary — April 23, 2018 @ 5:38 am

  56. Hi Mary,

    Did you run ‘sudo make install’ after building the plugin? If so, could you then try removing your gstreamer plugin registry file (most likely in either ~/.gstreamer-1.0/ or ~/.cache/gstreamer-1.0) and run:

    GST_DEBUG=5 gst-inspect-1.0 deepspeech > gst-log.txt 2>&1

    Then upload the gst-log.txt file to https://pastebin.ubuntu.com/

    Thanks,
    Mike

    Comment by Mike — April 23, 2018 @ 11:20 am

  57. Hi Mike,

    Thanks for the guidance. I did everything as you suggested, but the problem persisted. Finally, a simple trick worked out, just ran in administrative mode! 😉

    sudo gst-launch-1.0 -m filesrc location=/path/to/file.ogg ! decodebin ! audioconvert ! audiorate ! audioresample ! deepspeech ! fakesink

    Thanks a lot!

    best,
    Mary

    Comment by Mary — April 24, 2018 @ 3:48 am

  58. Hi Mary,

    That’s great; glad to hear that it’s working now. It shouldn’t really need sudo permissions to work, so if you ever figure out what exactly is going on there I’d be very interested to hear about it.

    Cheers,
    Mike

    Comment by Mike — April 24, 2018 @ 12:48 pm

  59. Hi Mike,

    Thanks for your work. I’ve got an application for this: transcribing speech for the deaf in real time. I, too, am getting WARNING: erroneous pipeline: no element “deepspeech”. Running on Ubuntu 17.10.

    Jon

    Comment by Jon — April 30, 2018 @ 1:07 am

  60. Hi Jon,

    Did you compile the plugin yourself or are you using the prepackaged version from the PPA (this should be the simplest way to get things working on an Ubuntu 17.10 system)? Could you follow the steps I outlined above to produce a log file and upload it so that I can diagnose your problem in more detail?

    Thanks,
    Mike

    Comment by Mike — April 30, 2018 @ 11:06 am

  61. Hi Mike,

    I used your PPAs. I produced a log file that was over 23000 lines. Not all of it went into the pastebin, but what I do have is in https://pastebin.ubuntu.com/p/SQXvhVj6Sc/. I’m an absolute newbie at this stuff, so I’ve probably done something stupid, but thank you for your help.

    Jon

    Comment by Jon — May 1, 2018 @ 1:41 am

  62. Hi Jon,

    Unfortunately that cuts off before it gets to any of the relevant details, could you try emailing the log file to me? (mike@mikeasoft.com)

    Thanks!

    Comment by Mike — May 1, 2018 @ 10:26 am

  63. Thanks for aleady making the PPAs available for 17.10 and 16.04. I’d love to try this out on Ubuntu 18.04 test installation. Any chance of an 18.04 version of the PPAs, pretty please??!! That should hopefully hold most people for a few months at the very least…

    Thank you very much in advance!

    Looks like a really interesting prospective function for Linux, so thanks for lowering the bar to try this out.

    Comment by Guest — May 5, 2018 @ 10:50 pm

  64. I’m away on holiday at the moment, but when I get back I’ll see about kicking off a build for 18.04 🙂

    Comment by Mike — May 5, 2018 @ 11:11 pm

  65. Thanks, Mike. Enjoy the rest of your holiday! 🙂

    Comment by Guest — May 7, 2018 @ 5:13 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress