14
votes

I am trying to integrate amazon skill kit in my website without an amazon echo unit. I want to implement voice commands on my website using the laptop/PC microphone instead of an echo unit.

I have used this tutorial but I didn't find anything about how to implement it on my side.

I also tried these samples available on github. But I think these also require an Amazon echo device: https://github.com/amzn/alexa-skills-kit-js

I am using Windows with the development environment given below

My development environment

  • I am able to configure web server for Alexa skills and it is working
  • Asp.Net
  • C#
  • Javascript / Jquery
  • Azure

Is it possible to use Amazon Alexa Skill Kit without an echo device?

5
Is There any Speech To Text api or speech recognition api available free that I can use to implement Voice Command on my website ?user5493185

5 Answers

5
votes

Yes, the Alexa Voice Service does exactly that: Lets you process audio from any source, like a laptop or tablet or phone, using the Alexa Skills Kit. No Echo is necessary.

Make sure you read through Getting Started with the Alexa Voice Service and the Reference Implementation Guide; there are a lot of configuration steps that need to be done to make everything work together.

Did you get the Alexa Voice tutorial you linked to working?

5
votes

If you haven't already, check out https://echosim.io

It's a web simulator of an Echo device.

It behaves just like any other Alexa 'device'. Login with your Amazon account and it picks up all your selected skills, etc. Shows up as just another device in the Alexa app.

Only downsides: You have to click to talk, and it's pretty slow, presumably because it has to receive, buffer, convert and re-ship the audio.

Also, I'm not sure how you register/connect to the Alexa service in the first place without an Echo/Dot device, but I assume there is a way.

More recently, there are a number of free 3rd-party apps on Android and iOS devices to also simulate an Alexa/Echo device. Search for 'Alexa' in your App/Play store and try a few of them out. "Reverb" is one: https://itunes.apple.com/us/app/reverb-for-amazon-alexa/id1144695621

Good luck.

2
votes

Things you can do with this library:

  1. Login with Amazon and get access token
  2. Get access token and refresh token from 'code' response type
  3. Get access token from refresh token
  4. Request user microphone
  5. Record user audio using microphone
  6. Send user audio to AVS
  7. Parse response from AVS
  8. Queue and play MP3 responses from AVS.

The audio recorded in this library is mono channel, sampled at 16k Hz, and signed 16 bit PCM encoding which is required by AVS.

Tutorial: https://github.com/miguelmota/alexa-voice-service.js Demo:https://miguelmota.com:9745/

1
votes

Generally speaking, once you set up your Alexa Voice Service (AVS) client, either on you desktop/laptop, webpage, Android or Raspberry Pi, you should be able to use the AVS client just like the way you use Echo.

Here's the official AVS sample app, well maintained and documented: https://github.com/alexa/alexa-avs-sample-app

As to Alexa Skills, note that "skills" are just like apps for Amazon Alexa. You login your Amazon account, install (enable) the skills for your Alexa service. Then whenever you speak to AVS with the pre-defined command corresponding to a certain skill, it will automatically redirect your command to that skill.

0
votes

Yes. You can certainly create and test skills without the actual device. Below are the steps I used to get it working. Note that I have not attempted to get it working on a website but I suppose it is possible by adapting the method used for the java client.

Step 1: Emulate the device. Use the "Alexa Voice Service" sample code, which behaves exactly like the device. Follow the steps on this page: https://developer.amazon.com/public/solutions/alexa/alexa-voice-service/docs/reference-implementation-guide. I used the java client to simulate the Alexa device and skipped the steps for the Android and iOS devices.

When you launch the java client it behaves just like an Alexa device.

Step 2: Create your Skill. The easiest way to get started is to launch the sample lambda function, as per https://developer.amazon.com/appsandservices/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-lambda-function.

Now when I launch the java client it can access the skill that I published to Lambda. I can edit the skill in lambda and hear the updates without even needing to re-launch the java client.

It would be great if someone has an example of this running over the web, rather than on the java client.