Skip to content
/ avs Public

python implementation of alexa voice service app, 支持DuerOS

License

Notifications You must be signed in to change notification settings

respeaker/avs

Repository files navigation

Python Alexa Voice Service App

Features

  • Support Alexa Voice Service API v20160207
  • Support multiple audio players: gstreamer 1.0, mpv and mpg123
  • 支持DuerOS

Requirements

Choose a player from mpv, mpg123 and gstreamer. SpeechSynthesizer and Alerts prefer mpg123 as it is more responsive. AudioPlayer likes gstreamer > mpv > mpg123. Gstreamer supports more audio format and works well on raspberry pi. We can also specify the player of AudioPlayer using the environment variable PLAYER.

  • one of mpg123, mpv and gstreamer 1.0
  • python-pyaudio
  • respeaker python library and pocketsphinx (optional, for hands-free keyword spotting)

Installation

  • For ReSpeaker Core (MT7688)

    gstreamer1.0, pyaudio and pocketsphinx and respeaker python library are already installed by default, just run pip install avs

  • For Ubuntu/Debian

    sudo apt-install mpg123 mpv sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
    gir1.2-gstreamer-1.0 python-gi python-gst-1.0 sudo apt-get install python-pyaudio sudo pip install avs respeaker pocketsphinx # requires gcc toolchain and libpulse-dev

Get started

  1. run alexa-audio-check to check if recording & playing is OK. If RMS is not zero, recording is OK, if you can hear alarm, playing is OK

    $alexa-audio-check RMS: 41 RMS: 43

  2. run alexa-auth to login Amazon, it will save authorization information to ~/.avs.json

  3. run alexa-tap, then press Enter to talk with alexa

  4. run alexa, then use "alexa" to start with conversation with alexa, for example, "alexa, what time is it"

If you want to use a specified player, use the environment variable PLAYER to specify it, such as PLAYER=mpv alexa-tap or PLAYER=mpg123 alexa or PLAYER=gstreamer alexa

To do

  • Speaker interface
  • Notifications interface

Change Alexa Voice Service client id and product id

If you want to use your own client id and product id, try:

  1. register for an Amazon Developer Account

  2. create a file named config.json with your product_id, client_id and client_secret

    { "product_id": "x", "client_id": "y", "client_secret": "z" }

  3. run alexa-auth -c config.json

  4. run alexa-tap or alexa

License

GNU General Public License v3

Credits

This project is based on nicholas-gh/python-alexa-client

This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage project template.