Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Alexa cheap echo

Alexa cheap echo

haruharuharuby

June 15, 2016
Tweet

More Decks by haruharuharuby

Other Decks in Business

Transcript

  1. AVS

  2. : global audio url = 'https://access-alexa-na.amazon.com/v1/avs/speechrecognizer/recognize' headers = {'Authorization' :

    'Bearer %s' % gettoken()} d = { "messageHeader": { "deviceContext": [ { "name": "playbackState", "namespace": "AudioPlayer", "payload": { "streamId": "", "offsetInMilliseconds": "0", "playerActivity": "IDLE" } } ] }, "messageBody": { "profile": "alexa-close-talk", "locale": "en-us", "format": "audio/L16; rate=16000; channels=1" } } with open(path+'recording.wav') as inf: files = [ ('file', ('request', json.dumps(d), 'application/json; charset=UTF-8')), ('file', ('audio', inf, 'audio/L16; rate=16000; channels=1')) ] r = requests.post(url, headers=headers, files=files) : Requestとして音声データを postすると。。。
  3. : if r.status_code == 200: for v in r.headers['content-type'].split(";"): if

    re.match('.*boundary.*', v): boundary = v.split("=")[1] data = r.content.split(boundary) for d in data: if (len(d) >= 1024): audio = d.split('\r\n\r\n')[1].rstrip('--') with open(path+"response.mp3", 'wb') as f: f.write(audio) : 音声データがResponseとして 返ってくる。 あとは、レンポンスに埋め込まれたスト リームを音声ファイルとして取り出して再 生する。
  4. 起動すると”hello”と言います。 “録音しています”と言ったら、”Alexa, ask cheap” と言ってください。 “送信しています”と言ったら、Alexaに声を届けています。 Alexaに届いていれば、”Welcome to cheap echo

    skill kit …” と返してくれます。 次に、”録音しています”と言ったら、 “My answer is XXXXX” と言って、何かしゃべってください。 Alexaが理解できれば、Your answer is XXXXXと返してくれます。
  5. 起動すると”hello”と言います。 “録音しています”と言ったら、”Alexa, ask amimoto ninja” と言ってください。 “送信しています”と言ったら、Alexaに声を届けています。 Alexaに届いていれば、”Welcome to amimoto

    ninja….” と返してくれます。 次に、”録音しています”と言ったら、 “I’m XXXXX” と言ってください。 Alexaが理解できれば、”Hi XXXXX”と返してくれます。 次に、 “録音しています”と言ったら、 “What is WordPress?” と聞いてみます。