9 ms·
Show HN: An open-source, Raspberry-Pi-based Siri alternative
- deleted 13y ago[deleted]
- deleted 13y ago[deleted]
- m4r71n 13y agoI'm not entirely clear on why it requires a WiFi adapter? Can you not use the wired connection? Module writing looks pretty nifty though, can't wait to give it a try over the weekend.
- shbhrsaha 13y agoYes you're right, it works absolutely fine over a wired connection, WiFi adapter not required.
- hansch 13y agothis might be a stupid question but HOW! :) after some troubles I finally got Jasper to boot up and first thing he does is complaining he can't connect to a network. So I connect my laptop via ethernet to the pi and try to reach the configuration site http://192.168.1.1:80000/cgi-bin/index.cgi http://192.168.1.1:80000/cgi-bin/index.cgi but it just won't connect. Might be something ridiculously obvious but I'm a total n00b when it comes to the pi...or linux in general :/
- radiorental 13y agoHow are you able to achieve this. My install says its 'attempting to connect with -SSID-' and fails, even with the wifi adapter removed and I've confirmed it's got an ethernet issued IP address.
- apendleton 13y agoIt's a shame that the quality of open-source text to speech engines is so much worse than the current commercial state of the art, as that's the most notable difference in the demo videos between this and something like Siri. Would fixing that just be a matter of recording more high-quality free sample libraries, etc., or are there fundamental technical challenges to solve?
- ChuckMcM 13y agoA lot of the DEC Voice stuff was part of a DARPA contract, it may be possible to liberate from some archive somewhere.
- k_bx 13y agoIt's a shame no one did something you don't even have idea how to do? Do you really think it's a shame?
- bsilvereagle 13y agoI'm normally not a fan of condescending comments, but you hit the nail right on the head. It doesn't seem like some people grasp that a lot of open source projects are coded by unpaid volunteers in their free time in subjects they're passionate about. Granted, there are commercial open source projects.
- aneisf 13y agoI'm sure everyone on HN is familiar with how open source projects work. The poster wasn't trying to tell contributors to get their act together and produce a higher quality product. Beyond just lamenting the quality gap, they were trying to understand what it was that open source projects of this nature are missing. Is it lack of research making its way downstream? Poor media quality? There was no blame placed on contributors. Understanding the answers to these questions can even help someone like the parent find an 'in' to contribute something themselves.
- deleted 13y ago[deleted]
- scribu 13y agoIt says it's 100% open-source, but I can't seem to find the sources for the Jasper platform (not the Jasper client). Even the "compile Jasper from scratch" installation method involves downloading some binaries: http://jasperproject.github.io/documentation/software/#install-binaries http://jasperproject.github.io/documentation/software/#insta... edit: more specific link
- shbhrsaha 13y agoThe client code at https://github.com/jasperproject/jasper-client https://github.com/jasperproject/jasper-client comprises all of the source. The modified Raspbian distribution linked to in the Software Guide only includes supporting libraries and some configuration files.
- scribu 13y agoOk, but why do I have to both install some binaries and clone jasper-client? http://jasperproject.github.io/documentation/software/#install-binaries http://jasperproject.github.io/documentation/software/#insta... http://jasperproject.github.io/documentation/software/#configure-jasper http://jasperproject.github.io/documentation/software/#confi... I think it would help if you briefly described in the docs what https://sourceforge.net/projects/jasperproject/files/usrlocallib_binaries.tar.gz/download https://sourceforge.net/projects/jasperproject/files/usrloca... contains, since it's fairly large (75 MB). Although smaller, the same goes for https://sourceforge.net/projects/jasperproject/files/usrlocalbin_binaries.tar.gz/download https://sourceforge.net/projects/jasperproject/files/usrloca... Otherwise, great initiative!
- shbhrsaha 13y agoThanks! Yes, we'll be sure to clear that up-- the binaries were for a few CMUCLTK and Phonetisaurus libraries that were difficult to compile on Raspberry Pi.
- murali44 13y agoSweet! This is just what I was looking for to command my Sonos speaker to play some music.
- bambax 13y agoI'd be very interested in this; I've been looking for a Sonos API for a long time and could only find an old Perl script that doesn't seem to be maintained. How do you plan on doing this? Thanks!
- murali44 13y agoThis is a nice python library for controlling a Sonos speaker. https://github.com/SoCo/SoCo https://github.com/SoCo/SoCo
- tylercrumpton 13y agoGreat work! What sort of recognition distance were you able to get with that microphone?
- shbhrsaha 13y agoThanks. Depends on the conditions, but works most of the time around 10-15 feet away!
- drincognito 13y agoHow accurate is text recognition (could you use it for dictation?) and how fast between the end of a command and recognition/parsing of said command?
- JetSpiegel 13y agoIf you want to do dictation, you can use the Sphinx4 project. It's in Java, and you have to write a bit of code, but it's an offline recognizer, you record the audio and then it doesn't run in real-time.
- lukasm 13y agoGuys, could you tell me where did you get the music for your demo? How much did you pay? What was the process? Did you use something like MoveMaker? I'm building a tool (prototype phase) for creating trail videos. One of the use case would be to create the demo movie of a product.
- atmosx 13y agoThat's amazing, I'm impressed. I have no idea how voice recognition software works, but is it possible using this open source project to add other non-Latin languages (e.g. Greek, Arabic, Japanese)?
- gallamine 13y agoIt uses the CMUSphinx project (http://cmusphinx.sourceforge.net/wiki/ http://cmusphinx.sourceforge.net/wiki/) that is language independent. You can download language models for English, Chinese, French, Spanish, German, Russian.
- JetSpiegel 13y agoI'm working with PocjketSphinx now, it's totally language independant. There is a paper floating around for Arabic, in which they used several reads of the Qu'ran as training data. For Chinese there's a model in the official Sphinx page.
- deleted 13y ago[deleted]
- nmadhavan 13y agoSeems clean, useful, and well-documented!
- bliker 13y agoI think this is a great project! But Raspberry Pi might be a bit overpriced/overpowered for this task. Maybe something like Arduino Yún would be more appropriate choice. I am really hoping this movement of small GNU/Linux based home appliances will take off and lower the price.
- tylercrumpton 13y agoHow would using a Yun be cheaper than a Raspberry Pi? The Yun is currently twice the cost of a the RPi, and even taking into account the WiFi adapter and SD card, the RPi comes out far ahead. You would also need to take the time to write drivers for the USB microphone and do realtime speech recognition, web traffic, and text-to-speech on the Yun's little 16MHz/400MHz processors. This project is perfect for single-board computers like the RPi, and I can't imagine that you would get that far with a microcontroller.
- samstave 13y agoThis would be an awesome voice control addon for XMBC/media play services from a Pi!
- vidarh 13y agoI was just thinking the same thing - I use XBMC on an Android TV stick now, with a wireless "airmouse" that's absolutely horrible to use, and I'd love a better option... For stuff that can easily be done with the XBMC web client, or a simple media remote it's not such a big deal, but it's not exactly a perfect solution.
- yaeger 13y agoI would love if that worked offline, too. Even if it is just a very limited use of voice recognition. Like, Siri has to be online cause everything is processed on Apple's servers because there are so many things Siri could do. But if all I want is to be able to say "play <NameOfMovie/TVShow>", I would love it if that could be done offline. Even if I had to train the system myself. Say I have 30 TV Shows in the library, I could see myself train the system the names of all of them if that meant I am able to actually start them via voice.
- izqui 13y agoThis is pretty cool. I would use Android's TTS (picotts). Audio quality is better.
- sp332 13y agoWould it be easy to get this running on a normal PC, without a RPi?
- kylemaxwell 13y agoExcellent, I've pondered doing something like this with a BeagleBone Black. Can't wait to try it out and see what I can do.
- gourneau 13y agoI am wanting to get this running on my BBB black. Hopefully it won't be that hard. It looks like mostly Python code, and a mountain of dependencies.
- sarvagyavaish 13y agoI am looking to use this / something similar at the startup I work at to toggle our robot's operating modes. I have a question regarding the voice recognition. Is the voice recognition stuff done on the Pi itself, or is there a service that Jasper taps into to perform voice recognition?
- fixedd 13y agoIt's using Pocketsphinx: http://cmusphinx.sourceforge.net/ http://cmusphinx.sourceforge.net/
- endeavour 13y agoIs there a way to make this subtract any noise being outputted by the pi's speaker ouput, so that it can still understand me if I'm playing music/watching a movie?
- kyle_martin1 13y agoWell, yes this can done. Noise cancelation & voice extraction algorithms aren't implemented here but it's totally possible. It wouldn't be too bad to implement if you have a decent understanding of DSP.
- kyle_martin1 13y agoI actually made this exact thing Saturday afternoon. Great job! First prototype was on an Arduino it and eventually ran out of firmware space. So then I upgraded to the RPi and from there it was a breeze. Suggestions: (1) Use Wit.ai for NLP. There is some added latency but the capabilities far out reach Sphinx in the long run. It's free. Less code to maintain. Easier to deploy and distribute. (2) Try to find a small mic so that you can put everything in a sleek package. (3) Add support for bluetooth speakers (you're on a RPi, it's basically done for you) (4) 3D print a custom case, throw some 3M tape on it and it's ready to be wall-mounted!
- fixedd 13y agoAnd use festival, not espeak!
- crm416 13y agoGreat suggestions. I've been meaning to take a deeper dive into Wit.ai for a while now. It seems like their intents-entities architecture would actually fit in pretty cleanly with Jasper. As an aside: I don't think it'd be difficult to developer Jasper modules that use Wit without modifying much of the original source (as long as the speech-to-text systems pick up on the text you'd need to pass to Wit).
- mfreeman451 13y agoIt would also be nice to have a gateway that bridges the gap between your desktops/workstations/mobile devices and jasper, so jasper can fire off commands.
- hardwaresofton 13y agoI also did a project like this last year -- I only got around to asking for date & time working, and was happy enough to stop going there... I disagree with (1), however: In the interest of making WAN-independent software (as in, I don't want my home automation to stop working if I can't call out to wit.ai), I actually don't agree with that point. I think that using CMUSphinx can be made extremely accurate with continuous training (something I'm angling to put in my version). Then again, I'm planning on making a competing product so differentiation is good for me. I think there are a lot of ways they can improve on the idea
- tdicola 13y agoNice project--I like the code, it's very clean and well structured. You should check out the subversion trunk of pocketsphinx, it has support for keyword spotting built in so you can do things like instantly recognize the persona keyword to enable the system instead of running the transcription through pocketsphinx and hoping for the best. Unfortunately the keyword spotting stuff isn't documented yet, but check out the code for my Demolition Man swear detector project which is using it: http://hackaday.io/project/531-Demolition-Man-Verbal-Morality-Statute-Monitor http://hackaday.io/project/531-Demolition-Man-Verbal-Moralit... The important bit is the ps_set_kws function call, this takes either a text keyword or filename with list of keywords. Then after processing audio call ps_get_hyp and it will return any spotted keywords. Check out the code here in PocketSphinxKWS.h/cpp: https://github.com/tdicola/DemoManMonitor https://github.com/tdicola/DemoManMonitor
- raghavsethi 13y agoGreat work guys! Looking forward to playing with this!
- ohblahitsme 13y agoThis looks great! I'm only missing a USB microphone. I'll be sure to make this once I get my hands on one. It also seems pretty trivial to set up Wolfram Alpha on here. From what it looks like, you'd just have to: 1) get a developer account at Wolfram Alpha 2) download this promising looking module: https://pypi.python.org/pypi/wolframalpha/1.0.2 https://pypi.python.org/pypi/wolframalpha/1.0.2 3) integrate it into Jasper (create a module) I'll be sure to try it once I get it set up.
- nl 13y agoThis looks pretty good. I've been working on a freetext question answering service, but more the question answering part (as opposed to the voice recognition side). Looking at the documentation[1], it appears there is no way for it to handle free text questions ("What is population of X?" - where X is any country) since all words need to be defined in advance. Is that correct or am I missing something? [1] http://jasperproject.github.io/documentation/api/standard/ http://jasperproject.github.io/documentation/api/standard/
- cscurmudgeon 13y agoSerious question: Why does everyone seem to confuse speech recognition with other parts of NLP (e.g. parsing)? I can understand CNN or TechCrunch getting confused, but there seems to be a universal confusion here on HN too. Not ranting. It is a bit exasperating to read comments and articles addressing only speech recognition. Siri is more than that.
- smallfluffycat 13y agoI need a french acoustic model, if anyone has one...
- nshm 13y agoFrench acoustic model for CMUSphinx is available in downloads: https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/French%20F0%20Broadcast%20News%20Acoustic%20Model/ https://sourceforge.net/projects/cmusphinx/files/Acoustic%20... You need to use it with French dictionary http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/French%20Language%20Model/frenchWords62K.dic/download http://sourceforge.net/projects/cmusphinx/files/Acoustic%20a...
- smallfluffycat 13y agoI need a french acoustic model, if anyone has one...
- jkldotio 13y agoExcellent work, I've always wanted to see a real world use of pocketsphinx with python. When I looked a year ago the documentation was lacking. The module system looks nicely extensible as well.
- achalkley 13y agoOpen Source project pitched like a product. This is how you do it peeps! I like this a lot and I'm encouraged to see it.
- gyosko 13y agoIt would be cool to trigger commands with my smartphone. I say "Open the door" he sends it to my Raspberry who then opens my door. Is this possible?
- rob_mccann 13y agoI had a very similar (albeit less-complete) hack a while back: https://github.com/rob-mccann/Pi-Voice https://github.com/rob-mccann/Pi-Voice