$ cd ~/sdk-folder/third-party $ wget -c http://www.portaudio.com/archives/pa_stable_v190600_20161030.tgz $ tar zxf pa_stable_v190600_20161030.tgz $ cd portaudio $ ./configure --without-jack && make
g. 现在是克隆AVS Device SDK的时候了。导航到您的sdk源文件夹并运行以下命令:
1 2
$ cd ~/sdk-folder/sdk-source $ git clone git://github.com/alexa/avs-device-sdk.git
{ "cblAuthDelegate":{ // Path to CBLAuthDelegate's database file. e.g. /home/ubuntu/Build/cblAuthDelegate.db // Note: The directory specified must be valid. // The database file (cblAuthDelegate.db) will be created by SampleApp, do not create it yourself. // The database file should only be used for CBLAuthDelegate (don't use it for other components of SDK) "databaseFilePath":"/home/patten/workspace/alexa/sdk-folder/application-necessities/cblAuthDelegate.db" }, "deviceInfo":{ // Unique device serial number. e.g. 123456 "deviceSerialNumber":"12345678", // The Client ID of the Product from developer.amazon.com "clientId": "amzn1.application-oa2-client.c4d72a06*************d75948a72dd", // Product ID from developer.amazon.com "productId": "austin_alexa" }, "capabilitiesDelegate":{ // The endpoint to connect in order to send device capabilities. // This will only be used in DEBUG builds. // e.g. "endpoint": "https://api.amazonalexa.com" // Override the message to be sent out to the Capabilities API. // This will only be used in DEBUG builds. // e.g. "overridenCapabilitiesPublishMessageBody": { // "envelopeVersion":"20160207", // "capabilities":[ // { // "type":"AlexaInterface", // "interface":"Alerts", // "version":"1.1" // } // ] // } }, "miscDatabase":{ // Path to misc database file. e.g. /home/ubuntu/Build/miscDatabase.db // Note: The directory specified must be valid. // The database file (miscDatabase.db) will be created by SampleApp, do not create it yourself. "databaseFilePath":"/home/patten/workspace/alexa/sdk-folder/application-necessities/miscDatabase.db" }, "alertsCapabilityAgent":{ // Path to Alerts database file. e.g. /home/ubuntu/Build/alerts.db // Note: The directory specified must be valid. // The database file (alerts.db) will be created by SampleApp, do not create it yourself. // The database file should only be used for alerts (don't use it for other components of SDK) "databaseFilePath":"/home/patten/workspace/alexa/sdk-folder/application-necessities/alerts.db" }, "settings":{ // Path to Settings database file. e.g. /home/ubuntu/Build/settings.db // Note: The directory specified must be valid. // The database file (settings.db) will be created by SampleApp, do not create it yourself. // The database file should only be used for settings (don't use it for other components of SDK) "databaseFilePath":"/home/patten/workspace/alexa/sdk-folder/application-necessities/settings.db", "defaultAVSClientSettings":{ // Default language for Alexa. // See https://developer.amazon.com/docs/alexa-voice-service/settings.html#settingsupdated for valid values. "locale":"en-US" } }, "bluetooth" : { // Path to Bluetooth database file. e.g. /home/ubuntu/Build/bluetooth.db // Note: The directory specified must be valid. // The database file (bluetooth.db) will be created by SampleApp, do not create it yourself. // The database file should only be used for bluetooth (don't use it for other components of SDK) "databaseFilePath":"" }, "certifiedSender":{ // Path to Certified Sender database file. e.g. /home/ubuntu/Build/certifiedsender.db // Note: The directory specified must be valid. // The database file (certifiedsender.db) will be created by SampleApp, do not create it yourself. // The database file should only be used for certifiedSender (don't use it for other components of SDK) "databaseFilePath":"/home/patten/workspace/alexa/sdk-folder/application-necessities/certifiedSender.db" }, "notifications":{ // Path to Notifications database file. e.g. /home/ubuntu/Build/notifications.db // Note: The directory specified must be valid. // The database file (notifications.db) will be created by SampleApp, do not create it yourself. // The database file should only be used for notifications (don't use it for other components of SDK) "databaseFilePath":"/home/patten/workspace/alexa/sdk-folder/application-necessities/notifications.db" }, "sampleApp":{ // To specify if the SampleApp supports display cards. "displayCardsSupported":true // The firmware version of the device to send in SoftwareInfo event. // Note: The firmware version should be a positive 32-bit integer in the range [1-2147483647]. // e.g. "firmwareVersion": 123 // The default endpoint to connect to. // See https://developer.amazon.com/docs/alexa-voice-service/api-overview.html#endpoints for regions and values // e.g. "endpoint": "https://avs-alexa-na.amazon.com"
// Example of specifying suggested latency in seconds when openning PortAudio stream. By default, // when this paramater isn't specified, SampleApp calls Pa_OpenDefaultStream to use the default value. // See http://portaudio.com/docs/v19-doxydocs/structPaStreamParameters.html for further explanation // on this parameter. //"portAudio":{ // "suggestedLatency": 0.150 //} }
// Example of specifying output format and the audioSink for the gstreamer-based MediaPlayer bundled with the SDK. // Many platforms will automatically set the output format correctly, but in some cases where the hardware requires // a specific format and the software stack is not automatically setting it correctly, these parameters can be used // to manually specify the output format. Supported rate/format/channels values are documented in detail here: // https://gstreamer.freedesktop.org/documentation/design/mediatype-audio-raw.html // // By default the "autoaudiosink" element is used in the pipeline. This element automatically selects the best sink // to use based on the configuration in the system. But sometimes the wrong sink is selected and that prevented sound // from being played. A new configuration is added where the audio sink can be specified for their system. // "gstreamerMediaPlayer":{ // "outputConversion":{ // "rate":16000, // "format":"S16LE", // "channels":1 // }, // "audioSink":"autoaudiosink" // },
// Example of specifiying curl options that is different from the default values used by libcurl. // "libcurlUtils":{ // // By default libcurl is built with paths to a CA bundle and a directory containing CA certificates. You can // direct the AVS Device SDK to configure libcurl to use an additional path to directories containing CA // certificates via the CURLOPT_CAPATH setting. Additional details of this curl option can be found in: // https://curl.haxx.se/libcurl/c/CURLOPT_CAPATH.html // "CURLOPT_CAPATH":"INSERT_YOUR_CA_CERTIFICATE_PATH_HERE", // // You can specify the AVS Device SDK to use a specific outgoing network interface. More information of // this curl option can be found here: // https://curl.haxx.se/libcurl/c/CURLOPT_INTERFACE.html // "CURLOPT_INTERFACE":"INSERT_YOUR_INTERFACE_HERE" // },
// Example of specifying a default log level for all ModuleLoggers. If not specified, ModuleLoggers get // their log level from the sink logger. // "logging":{ // "logLevel":"INFO" // },
// Example of overriding a specific ModuleLogger's log level whether it was specified by the default value // provided by the logging.logLevel value (as in the above example) or the log level of the sink logger. // "acl":{ // "logLevel":"DEBUG9" // } }
// Notes for logging // The log levels are supported to debug when SampleApp is not working as expected. // There are 14 levels of logging with DEBUG9 providing the highest level of logging and CRITICAL providing // the lowest level of logging i.e. if DEBUG9 is specified while running the SampleApp, all the logs at DEBUG9 and // below are displayed, whereas if CRITICAL is specified, only logs of CRITICAL are displayed. // The 14 levels are: // DEBUG9, DEBUG8, DEBUG7, DEBUG6, DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, DEBUG0, INFO, WARN, ERROR, CRITICAL.
// To selectively see the logging for a particular module, you can specify logging level in this json file. // Some examples are: // To only see logs of level INFO and below for ACL and MediaPlayer modules, // - grep for ACSDK_LOG_MODULE in source folder. Find the log module for ACL and MediaPlayer. // - Put the following in json:
// To enable DEBUG, build with cmake option -DCMAKE_BUILD_TYPE=DEBUG. By default it is built with RELEASE build. // And run the SampleApp similar to the following command. // e.g. ./SampleApp /home/ubuntu/.../AlexaClientSDKConfig.json /home/ubuntu/KittAiModels/ DEBUG9"
运行并授权:
导航到您的构建文件夹(~/sdk-folder/sdk-build),然后:
a. 启动示例应用程序:
################################## # NOT YET AUTHORIZED # ################################## ################################################################################################ # To authorize, browse to: 'https://amazon.com/us/code' and enter the code: {XXXX} # ################################################################################################
c. 使用浏览器导航到来自示例应用程序的消息中指定的URL(此处为https://amazon.com/us/code)。
d. 如果需要这样做,请使用Amazon用户凭证进行身份验证。
e. 输入来自示例应用程序的消息中指定的代码。
f. 选择“Allow”。
g. 等待CBLAuthDelegate从Amazon (LWA)登录成功获取访问令牌和刷新令牌。此时,示例应用程序将打印如下消息:
1 2 3
######################################## # Alexa is currently idle! # ########################################