1*1c60b9acSAndroid Build Coastguard Worker# lws secure streams alexa
2*1c60b9acSAndroid Build Coastguard Worker
3*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates AVS Alexa usage using secure streams.  It connects to AVS,
4*1c60b9acSAndroid Build Coastguard Workeruses your linux computer's microphone to wait for the 'alexa' wakeword, sends
5*1c60b9acSAndroid Build Coastguard Workerthe utterance to AVS and plays back the result.
6*1c60b9acSAndroid Build Coastguard Worker
7*1c60b9acSAndroid Build Coastguard Worker## build
8*1c60b9acSAndroid Build Coastguard Worker
9*1c60b9acSAndroid Build Coastguard WorkerThere are some special build considerations:
10*1c60b9acSAndroid Build Coastguard Worker
11*1c60b9acSAndroid Build Coastguard Worker1) Build lws with cmake options `-DLWS_WITH_ALSA=1 -DLWS_WITH_SECURE_STREAMS=1`
12*1c60b9acSAndroid Build Coastguard Worker
13*1c60b9acSAndroid Build Coastguard Worker2) Install distro build dependency packages:
14*1c60b9acSAndroid Build Coastguard Worker
15*1c60b9acSAndroid Build Coastguard Worker |Dependency|Ubuntu package|Fedora Package|
16*1c60b9acSAndroid Build Coastguard Worker |---|---|---|
17*1c60b9acSAndroid Build Coastguard Worker |libasound|libasound2-dev|alsa-lib-devel|
18*1c60b9acSAndroid Build Coastguard Worker |mpg123|libmpg123-dev|mpg123-devel|
19*1c60b9acSAndroid Build Coastguard Worker
20*1c60b9acSAndroid Build Coastguard Worker3) Clone Picovoice Porcupine Apache-licensed demo version from here
21*1c60b9acSAndroid Build Coastguard Worker
22*1c60b9acSAndroid Build Coastguard Worker   https://github.com/Picovoice/porcupine
23*1c60b9acSAndroid Build Coastguard Worker
24*1c60b9acSAndroid Build Coastguard Worker   It provides binary libs for wakeword detection on various platforms.  Copy
25*1c60b9acSAndroid Build Coastguard Worker   the headers and binary lib to your build context, eg, for native x86_64
26*1c60b9acSAndroid Build Coastguard Worker
27*1c60b9acSAndroid Build Coastguard Worker```
28*1c60b9acSAndroid Build Coastguard Worker   $ sudo cp ./include/* /usr/include
29*1c60b9acSAndroid Build Coastguard Worker   $ sudo cp ./lib/linux/x86_64/libpv_porcupine.* /usr/lib
30*1c60b9acSAndroid Build Coastguard Worker   $ sudo ldconfig
31*1c60b9acSAndroid Build Coastguard Worker```
32*1c60b9acSAndroid Build Coastguard Worker
33*1c60b9acSAndroid Build Coastguard Worker   Enter the minimal example dir for secure-streams-alexa and make the sample
34*1c60b9acSAndroid Build Coastguard Worker
35*1c60b9acSAndroid Build Coastguard Worker```
36*1c60b9acSAndroid Build Coastguard Worker   $ cd ./minimal-examples/secure-streams/minimal-secure-streams-alexa
37*1c60b9acSAndroid Build Coastguard Worker   $ cmake .
38*1c60b9acSAndroid Build Coastguard Worker   $ make
39*1c60b9acSAndroid Build Coastguard Worker```
40*1c60b9acSAndroid Build Coastguard Worker
41*1c60b9acSAndroid Build Coastguard Worker## usage
42*1c60b9acSAndroid Build Coastguard Worker
43*1c60b9acSAndroid Build Coastguard Worker```
44*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-secure-streams-alexa
45*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:01:1097] U: LWS secure streams - Alex voice test [-d<verb>]
46*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:01:1115] N: lws_create_context: creating Secure Streams policy
47*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:01:1115] N: lwsac_use: alloc 1532 for 1
48*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:01:1119] N: lwsac_use: alloc 288 for 168
49*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:01:1119] N: lws_ss_policy_set: policy lwsac size:     1.796KiB, pad 11%
50*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:02:4114] N: lws_ss_client_connect: connecting 0 api.amazon.com /auth/o2/token
51*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:02:8686] N: auth_api_amazon_com_parser_cb: expires in 3600
52*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:02:8686] N: ss_api_amazon_auth_rx: acquired 656-byte api.amazon.com auth token
53*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:02:8754] N: lws_ss_client_connect: connecting 1 alexa.na.gateway.devices.a2z.com /v20160207/directives
54*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:02:3182] N: secstream_h2: h2 client entering LONG_POLL
55*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:02:3183] U: Connected to Alexa... speak "Alexa, ..."
56*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:9380] W: ************* Wakeword
57*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:9380] N: avs_query_start:
58*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:9381] N: lws_ss_client_connect: connecting 1 alexa.na.gateway.devices.a2z.com /v20160207/events
59*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:9381] N: lws_vhost_active_conns: just join h2 directly
60*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:9384] N: metadata done
61*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:1524] N: est: 42 1
62*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:06:3723] N: est: 108 1
63*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:07:5914] N: est: 352 1
64*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:07:8112] N: est: 4284 1
65*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:07:0300] N: est: 3369 1
66*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:07:2325] N: est: 577 1
67*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:08:4519] N: est: 9 1
68*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:08:6716] N: est: 3 1
69*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:08:6718] N: est: 11 1
70*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:08:8915] N: est: 10 1
71*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:08:8915] W: callback_audio: ended capture
72*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:09:0993] N: identified reply...
73*1c60b9acSAndroid Build Coastguard Worker^C[2019/10/16 16:22:14:3067] U: Disconnected from Alexa
74*1c60b9acSAndroid Build Coastguard Worker[2019/10/16 16:22:14:3123] U: Completed
75*1c60b9acSAndroid Build Coastguard Worker$
76*1c60b9acSAndroid Build Coastguard Worker
77*1c60b9acSAndroid Build Coastguard Worker```
78