Using a phone for sound input

Hi

A very nice way to use MRL from the phone is to use the webgui. But you must have access to a WiFi network for this to work. ( Not really. But you must be able to reach the host where MRL is running from your phone, could be anywhere in the world ).

1. Make sure that your instance of MRL running with the WebSpeechRecognition and the WebGui started. For example you can use this script. It starts a chatbot. with sound input and output. You don't need any servos or anything else to make this work So you can try it without any extra hardware: 

https://github.com/MyRobotLab/pyrobotlab/blob/master/home/Mats/WebSpeech...

2. Make sure that you have Chrome installed and that you are using it as a your browser.

3. Now you can test that the chatbot is working by opening the WebkitSpeechRecognintion tab in the browser. Click on the microphone icon and say something. The chatbot should then respond with saying something. 

3. Time to check your phone/tablet or any other device that has a browser. If you want to use webkitspeechrecognition you need to have Chrome installed. If not, you have to download it from App Store or where you usually download app's from. That depends a bit on what type of phone you have.

4. Make sure that your phone is on the same WiFi as MRL. That makes things easy to test. It is also possible to setup a network so that you can reach MRL from anywhere in the world. But that requires a little bit more configuration. 

5. Find the ip-address of the PC host MRL is running. On a PC you can open a cmd line and type:

ipconfig /all

The line you are looking for is Ipv4 Address. You should find four numbers like 10.2.1.238

Thats the ip-address 

6. On your phone, open Chrome and go to this address ( replace 10.2.1.238 with your ip-adress )

http://10.2.1.238:8888/#/service/webkitspeechrecognition

NB I tried this on my iPhone but no luck. Not sure why it fails. I can see in the log that the phone reaches MRL and I can also very quickly see that the phone loads the webkitspeechrecognition webpage, but then the screen becomes blank. It's possible that it work on other phones. I remember kwatters writing that he was using  his phone with MRL.

However the principle works, and the reason that my test failed may be some security setting. 

For example using this:

http://10.2.1.238:8888/#/service/lloyd

showed me the chat window from the ProgramAB service named lloyd. I could type a message on the phone and MRL would respond.

I will have to do some more invstigation why this isn't working, You can try any service from your phone. Just use the name of the service that you have started after http://10.2.1.238:8888/#/service/

If you want to se all services use this address:

http://10.2.1.238:8888/#/main

Have fun.

/Mats


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
pedro's picture

Mats im wash dishing and

Mats im wash dishing and cleaning but i will try it!! Thanks!!! and a more easy app for phone would be a good consideration for future imo !!

 

thank you so much

beetlejuice's picture

Thank you mats ! Iwill try

Thank you mats ! Iwill try it too .

Maybe this topic must be moved in the tutorial section !

Mats's picture

MRL from a phone

I tested a little more on my phone today. In my previous post I missed to write some things that may be obviuos, but I still think that I should write about it. I must say that I was a bit surprised when I could reach the videostream from the PI camera in my InMoov from my phone, but it works :-) 

What I write below and is valid for any host that has a browser, like a phone, tablet, pc, mac, raspi, playstation, xbox, TV, you name it. That's the strength of having a webserver in MRL and the reason that we try to move in that direction.  

From the browser you can reach all services using this URL:

http://localhost:8888/#/main

Change localhost to the ip-address of the host where MRL is executing.

If you start OpenCV you can get the videostream like this:

http://localhost:9090/input 

As in the other examples you need to change the localhost to the ip-address of the host where MRL is executing.

Happy MRL Surfing :) 

wvantoorn's picture

Mats, did you use the

Mats, did you use the raspberry as device for mrl and then accessing it with your phone? I want to put mrl on my raspi 3, because it has built in wifi and can be used stand alone.

love this tutorial and hope you have some more. Maybe even with video to explain.