实例介绍
alexa/alexa-avs-sample-app 一个对接亚马逊Alexa的示例Demo
【实例截图】
【核心代码】
alexa-avs-sample-app-master
└── alexa-avs-sample-app-master
├── automated_install.sh
├── CONTRIBUTING.md
├── Installer_Licenses.txt
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── RELEASE.txt
└── samples
├── androidCompanionApp
│ ├── app
│ │ ├── build.gradle
│ │ ├── libs
│ │ │ └── login-with-amazon-sdk.jar
│ │ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ └── amazon
│ │ │ └── alexa
│ │ │ └── avs
│ │ │ └── companion
│ │ │ ├── AuthConstants.java
│ │ │ ├── CompanionProvisioningInfo.java
│ │ │ ├── DeviceProvisioningInfo.java
│ │ │ ├── LoginWithAmazonActivity.java
│ │ │ └── ProvisioningClient.java
│ │ └── res
│ │ ├── drawable
│ │ │ └── login_button.xml
│ │ ├── drawable-hdpi
│ │ │ ├── btnlwa_gold_loginwithamazon.png
│ │ │ └── btnlwa_gold_loginwithamazon_pressed.png
│ │ ├── drawable-mdpi
│ │ │ ├── btnlwa_gold_loginwithamazon.png
│ │ │ └── btnlwa_gold_loginwithamazon_pressed.png
│ │ ├── drawable-xhdpi
│ │ │ ├── btnlwa_gold_loginwithamazon.png
│ │ │ └── btnlwa_gold_loginwithamazon_pressed.png
│ │ ├── drawable-xxhdpi
│ │ │ ├── btnlwa_gold_loginwithamazon.png
│ │ │ └── btnlwa_gold_loginwithamazon_pressed.png
│ │ ├── layout
│ │ │ └── lwa_activity.xml
│ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ ├── values
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── values-w820dp
│ │ └── dimens.xml
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── README.txt
│ └── settings.gradle
├── companionService
│ ├── app.js
│ ├── authentication.js
│ ├── bin
│ │ └── www
│ ├── config.js
│ ├── package.json
│ └── template_config_js
├── iOSCompanionApp
│ ├── AlexaCompanionAppSample.xcodeproj
│ │ └── project.pbxproj
│ ├── Application
│ │ ├── AlexaCompanionAppSample-Info.plist
│ │ ├── AlexaCompanionAppSample-Prefix.pch
│ │ ├── AVSApplicationDelegate.h
│ │ ├── AVSApplicationDelegate.m
│ │ ├── AVSDeviceResponse.h
│ │ ├── AVSDeviceResponse.m
│ │ ├── btnLWA_gold_209x48.png
│ │ ├── btnLWA_gold_209x48_pressed.png
│ │ ├── en.lproj
│ │ │ ├── InfoPlist.strings
│ │ │ ├── MainStoryboard_iPad.storyboard
│ │ │ └── MainStoryboard_iPhone.storyboard
│ │ ├── LoginController.h
│ │ ├── LoginController.m
│ │ ├── main.m
│ │ ├── ProvisioningClient.h
│ │ └── ProvisioningClient.m
│ ├── btnLWA_gold_68x72.png
│ ├── btnLWA_Gold_94x96.png
│ ├── LoginWithAmazon.framework
│ │ ├── Headers
│ │ │ ├── AIAuthenticationDelegate.h
│ │ │ ├── AIError.h
│ │ │ ├── AIMobileLib.h
│ │ │ ├── AMZNAuthorizationManager.h
│ │ │ ├── AMZNAuthorizeRequest.h
│ │ │ ├── AMZNAuthorizeResult.h
│ │ │ ├── AMZNLWASDKInfo.h
│ │ │ ├── AMZNProfileScope.h
│ │ │ ├── AMZNScopeFactory.h
│ │ │ ├── AMZNScope.h
│ │ │ ├── AMZNUser.h
│ │ │ └── LoginWithAmazon.h
│ │ ├── LoginWithAmazon
│ │ ├── Modules
│ │ │ └── module.modulemap
│ │ └── Versions
│ │ ├── A
│ │ │ ├── Headers
│ │ │ │ ├── AIAuthenticationDelegate.h
│ │ │ │ ├── AIError.h
│ │ │ │ ├── AIMobileLib.h
│ │ │ │ ├── AMZNAuthorizationManager.h
│ │ │ │ ├── AMZNAuthorizeRequest.h
│ │ │ │ ├── AMZNAuthorizeResult.h
│ │ │ │ ├── AMZNLWASDKInfo.h
│ │ │ │ ├── AMZNProfileScope.h
│ │ │ │ ├── AMZNScopeFactory.h
│ │ │ │ ├── AMZNScope.h
│ │ │ │ ├── AMZNUser.h
│ │ │ │ └── LoginWithAmazon.h
│ │ │ └── LoginWithAmazon
│ │ └── Current
│ │ ├── Headers
│ │ │ ├── AIAuthenticationDelegate.h
│ │ │ ├── AIError.h
│ │ │ ├── AIMobileLib.h
│ │ │ ├── AMZNAuthorizationManager.h
│ │ │ ├── AMZNAuthorizeRequest.h
│ │ │ ├── AMZNAuthorizeResult.h
│ │ │ ├── AMZNLWASDKInfo.h
│ │ │ ├── AMZNProfileScope.h
│ │ │ ├── AMZNScopeFactory.h
│ │ │ ├── AMZNScope.h
│ │ │ ├── AMZNUser.h
│ │ │ └── LoginWithAmazon.h
│ │ └── LoginWithAmazon
│ └── Resources
│ ├── App
│ │ ├── btnLWA_gold_157x36.png
│ │ ├── btnLWA_gold_157x36_pressed.png
│ │ ├── btnLWA_gold_209x48.png
│ │ ├── btnLWA_gold_209x48_pressed.png
│ │ ├── btnLWA_gold_314x72.png
│ │ ├── btnLWA_gold_314x72_pressed.png
│ │ └── Default-568h@2x.png
│ └── iOS
│ ├── 32dp
│ │ ├── 1x
│ │ │ ├── btnLWA_drkgry_157x36.png
│ │ │ ├── btnLWA_drkgry_157x36_pressed.png
│ │ │ ├── btnLWA_Drkgry_34x36.png
│ │ │ ├── btnLWA_Drkgry_34x36_Pressed.png
│ │ │ ├── btnLWA_Drkgry_77x36.png
│ │ │ ├── btnLWA_Drkgry_77x36_Pressed.png
│ │ │ ├── btnLWA_gold_157x36.png
│ │ │ ├── btnLWA_gold_157x36_pressed.png
│ │ │ ├── btnLWA_Gold_34x36.png
│ │ │ ├── btnLWA_Gold_34x36_Pressed.png
│ │ │ ├── btnLWA_Gold_77x36.png
│ │ │ ├── btnLWA_Gold_77x36_Pressed.png
│ │ │ ├── btnLWA_gry_157x36.png
│ │ │ ├── btnLWA_gry_157x36_pressed.png
│ │ │ ├── btnLWA_Gry_34x36.png
│ │ │ ├── btnLWA_Gry_34x36_Pressed.png
│ │ │ ├── btnLWA_Gry_77x36.png
│ │ │ └── btnLWA_Gry_77x36_Pressed.png
│ │ └── 2x
│ │ ├── btnLWA_drkgray_157x36@2x.png
│ │ ├── btnLWA_drkgray_157x36_pressed@2x.png
│ │ ├── btnLWA_drkgry_34x36@2x.png
│ │ ├── btnLWA_drkgry_34x36_pressed@2x.png
│ │ ├── btnLWA_Drkgry_77x36@2x.png
│ │ ├── btnLWA_Drkgry_77x36_Pressed@2x.png
│ │ ├── btnLWA_gold_157x36@2x.png
│ │ ├── btnLWA_gold_157x36_pressed@2x.png
│ │ ├── btnLWA_gold_34x36@2x.png
│ │ ├── btnLWA_gold_34x36_pressed@2x.png
│ │ ├── btnLWA_Gold_77x36@2x.png
│ │ ├── btnLWA_Gold_77x36_Pressed@2x.png
│ │ ├── btnLWA_gry_157x36@2x.png
│ │ ├── btnLWA_gry_157x36_pressed@2x.png
│ │ ├── btnLWA_gry_34x36@2x.png
│ │ ├── btnLWA_gry_34x36_pressed@2x.png
│ │ ├── btnLWA_Gry_77x36@2x.png
│ │ └── btnLWA_Gry_77x36_Pressed@2x.png
│ └── 44dp
│ ├── 1x
│ │ ├── btnLWA_Drkgry_102x48.png
│ │ ├── btnLWA_Drkgry_102x48_Pressed.png
│ │ ├── btnLWA_drkgry_209x48.png
│ │ ├── btnLWA_drkgry_209x48_pressed.png
│ │ ├── btnLWA_Drkgry_46x48.png
│ │ ├── btnLWA_Drkgry_46x48_Pressed.png
│ │ ├── btnLWA_Gold_102x48.png
│ │ ├── btnLWA_Gold_102x48_Pressed.png
│ │ ├── btnLWA_Gold_46x48.png
│ │ ├── btnLWA_Gold_46x48_Pressed.png
│ │ ├── btnLWA_Gry_102x48.png
│ │ ├── btnLWA_Gry_102x48_Pressed.png
│ │ ├── btnLWA_gry_209x48.png
│ │ ├── btnLWA_gry_209x48_pressed.png
│ │ ├── btnLWA_Gry_46x48.png
│ │ └── btnLWA_Gry_46x48_Pressed.png
│ └── 2x
│ ├── btnLWA_Drkgry_102x48@2x.png
│ ├── btnLWA_Drkgry_102x48_Pressed@2x.png
│ ├── btnLWA_drkgry_209x48@2x.png
│ ├── btnLWA_drkgry_209x48_pressed@2x.png
│ ├── btnLWA_Drkgry_46x48@2x.png
│ ├── btnLWA_Drkgry_46x48_Pressed@2x.png
│ ├── btnLWA_Gold_102x48@2x.png
│ ├── btnLWA_Gold_102x48_Pressed@2x.png
│ ├── btnLWA_gold_209x48@2x.png
│ ├── btnLWA_gold_209x48_pressed@2x.png
│ ├── btnLWA_Gold_46x48@2x.png
│ ├── btnLWA_Gold_46x48_Pressed@2x.png
│ ├── btnLWA_Gry_102x486@2x.png
│ ├── btnLWA_Gry_102x48_Pressed@2x.png
│ ├── btnLWA_gry_209x48@2x.png
│ ├── btnLWA_gry_209x48_pressed@2x.png
│ ├── btnLWA_Gry_46x48@2x.png
│ └── btnLWA_Gry_46x48_Pressed@2x.png
├── javaclient
│ ├── config.json
│ ├── generate.bat
│ ├── generate.sh
│ ├── install-java8.sh
│ ├── log4j2.xml
│ ├── pom_other.xml
│ ├── pom_pi.xml
│ ├── pom.xml
│ ├── README.txt
│ ├── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── amazon
│ │ │ └── alexa
│ │ │ └── avs
│ │ │ ├── AlertEventListener.java
│ │ │ ├── AlertHandler.java
│ │ │ ├── Alert.java
│ │ │ ├── AlertManagerFactory.java
│ │ │ ├── AlertManager.java
│ │ │ ├── AlertScheduler.java
│ │ │ ├── AlertsFileDataStore.java
│ │ │ ├── App.java
│ │ │ ├── audio
│ │ │ │ ├── AudioPlayer.java
│ │ │ │ └── SimpleAudioPlayer.java
│ │ │ ├── AudioCapture.java
│ │ │ ├── AudioInputFormat.java
│ │ │ ├── AudioPlayerActivity.java
│ │ │ ├── AudioPlayerEventPayload.java
│ │ │ ├── AudioPlayerProgressReporter.java
│ │ │ ├── AudioPlayerStateMachine.java
│ │ │ ├── AudioPlayerTimer.java
│ │ │ ├── AudioStateOutputStream.java
│ │ │ ├── auth
│ │ │ │ ├── AccessTokenListener.java
│ │ │ │ ├── AuthConstants.java
│ │ │ │ ├── AuthSetup.java
│ │ │ │ ├── companionapp
│ │ │ │ │ ├── CodeChallengeWorkflow.java
│ │ │ │ │ ├── CompanionAppAuthManager.java
│ │ │ │ │ ├── CompanionAppProvisioningInfo.java
│ │ │ │ │ ├── DeviceProvisioningInfo.java
│ │ │ │ │ ├── LWAException.java
│ │ │ │ │ ├── OAuth2ClientForPkce.java
│ │ │ │ │ ├── OAuth2TokensForPkce.java
│ │ │ │ │ └── server
│ │ │ │ │ ├── CompanionAppProvisioningServer.java
│ │ │ │ │ ├── CompanionInfoHandler.java
│ │ │ │ │ └── DeviceInfoHandler.java
│ │ │ │ ├── companionservice
│ │ │ │ │ ├── CompanionServiceAuthManager.java
│ │ │ │ │ ├── CompanionServiceClient.java
│ │ │ │ │ ├── CompanionServiceRegCodeResponse.java
│ │ │ │ │ └── RegCodeDisplayHandler.java
│ │ │ │ ├── MissingParameterException.java
│ │ │ │ └── OAuth2AccessToken.java
│ │ │ ├── AVSAPIConstants.java
│ │ │ ├── AVSAudioPlayerFactory.java
│ │ │ ├── AVSAudioPlayer.java
│ │ │ ├── AVSController.java
│ │ │ ├── AVSRequest.java
│ │ │ ├── BlockableDirectiveThread.java
│ │ │ ├── config
│ │ │ │ ├── DeviceConfig.java
│ │ │ │ ├── DeviceConfigUtils.java
│ │ │ │ └── ObjectMapperFactory.java
│ │ │ ├── DataStore.java
│ │ │ ├── DateUtils.java
│ │ │ ├── DialogRequestIdAuthority.java
│ │ │ ├── DirectiveDispatcher.java
│ │ │ ├── DirectiveEnqueuer.java
│ │ │ ├── exception
│ │ │ │ ├── AlexaSystemExceptionCode.java
│ │ │ │ ├── AlexaSystemException.java
│ │ │ │ ├── AVSException.java
│ │ │ │ ├── AVSJsonProcessingException.java
│ │ │ │ └── DirectiveHandlingException.java
│ │ │ ├── ExpectSpeechListener.java
│ │ │ ├── ExpectStopCaptureListener.java
│ │ │ ├── FileDataStore.java
│ │ │ ├── http
│ │ │ │ ├── AbstractRetryPolicy.java
│ │ │ │ ├── AudioInputStreamContentProvider.java
│ │ │ │ ├── AVSClientFactory.java
│ │ │ │ ├── AVSClient.java
│ │ │ │ ├── BasicHttpClient.java
│ │ │ │ ├── CachingContentProvider.java
│ │ │ │ ├── ContentTypes.java
│ │ │ │ ├── ExponentialRetryPolicy.java
│ │ │ │ ├── HttpHeaders.java
│ │ │ │ ├── jetty
│ │ │ │ │ ├── InputStreamResponseListener.java
│ │ │ │ │ └── PingSendingHttpClientTransportOverHTTP2.java
│ │ │ │ ├── LinearRetryPolicy.java
│ │ │ │ ├── MessageParser.java
│ │ │ │ ├── MultipartContentProvider.java
│ │ │ │ ├── MultipartParser.java
│ │ │ │ ├── ParsingFailedHandler.java
│ │ │ │ └── RetryPolicy.java
│ │ │ ├── ListenHandler.java
│ │ │ ├── message
│ │ │ │ ├── DialogRequestIdHeader.java
│ │ │ │ ├── Header.java
│ │ │ │ ├── MessageIdHeader.java
│ │ │ │ ├── Message.java
│ │ │ │ ├── Payload.java
│ │ │ │ ├── request
│ │ │ │ │ ├── alerts
│ │ │ │ │ │ └── AlertPayload.java
│ │ │ │ │ ├── audioplayer
│ │ │ │ │ │ ├── AudioPlayerPayload.java
│ │ │ │ │ │ ├── PlaybackFailedPayload.java
│ │ │ │ │ │ ├── PlaybackNearlyFinishedPayload.java
│ │ │ │ │ │ └── PlaybackStutterFinishedPayload.java
│ │ │ │ │ ├── ComponentStateFactory.java
│ │ │ │ │ ├── context
│ │ │ │ │ │ ├── AlertsStatePayload.java
│ │ │ │ │ │ ├── ComponentState.java
│ │ │ │ │ │ ├── NotificationsStatePayload.java
│ │ │ │ │ │ ├── PlaybackStatePayload.java
│ │ │ │ │ │ ├── SpeechStatePayload.java
│ │ │ │ │ │ └── VolumeStatePayload.java
│ │ │ │ │ ├── ContextEventRequestBody.java
│ │ │ │ │ ├── Event.java
│ │ │ │ │ ├── RequestBody.java
│ │ │ │ │ ├── RequestFactory.java
│ │ │ │ │ ├── settings
│ │ │ │ │ │ ├── LocaleSetting.java
│ │ │ │ │ │ ├── Setting.java
│ │ │ │ │ │ └── SettingsUpdatedPayload.java
│ │ │ │ │ ├── speechrecognizer
│ │ │ │ │ │ └── SpeechRecognizerPayload.java
│ │ │ │ │ ├── speechsynthesizer
│ │ │ │ │ │ └── SpeechLifecyclePayload.java
│ │ │ │ │ └── system
│ │ │ │ │ ├── ExceptionEncounteredPayload.java
│ │ │ │ │ └── UserInactivityReportPayload.java
│ │ │ │ └── response
│ │ │ │ ├── alerts
│ │ │ │ │ ├── DeleteAlert.java
│ │ │ │ │ └── SetAlert.java
│ │ │ │ ├── AlexaExceptionResponse.java
│ │ │ │ ├── AttachedContentPayload.java
│ │ │ │ ├── audioplayer
│ │ │ │ │ ├── AudioItem.java
│ │ │ │ │ ├── ClearQueue.java
│ │ │ │ │ ├── Play.java
│ │ │ │ │ ├── Stop.java
│ │ │ │ │ └── Stream.java
│ │ │ │ ├── Directive.java
│ │ │ │ ├── notifications
│ │ │ │ │ └── SetIndicator.java
│ │ │ │ ├── ProgressReport.java
│ │ │ │ ├── ResponseBody.java
│ │ │ │ ├── speaker
│ │ │ │ │ ├── AdjustVolume.java
│ │ │ │ │ ├── SetMute.java
│ │ │ │ │ ├── SetVolume.java
│ │ │ │ │ └── VolumePayload.java
│ │ │ │ ├── speechrecognizer
│ │ │ │ │ └── Listen.java
│ │ │ │ ├── speechsynthesizer
│ │ │ │ │ ├── ExpectSpeech.java
│ │ │ │ │ └── Speak.java
│ │ │ │ ├── system
│ │ │ │ │ ├── Exception.java
│ │ │ │ │ └── SetEndpoint.java
│ │ │ │ └── templateruntime
│ │ │ │ ├── CardHandler.java
│ │ │ │ ├── RenderPlayerInfo.java
│ │ │ │ ├── RenderTemplate.java
│ │ │ │ └── Title.java
│ │ │ ├── MicrophoneLineFactory.java
│ │ │ ├── NotificationIndicator.java
│ │ │ ├── NotificationManager.java
│ │ │ ├── PlaybackAction.java
│ │ │ ├── RecordingRMSListener.java
│ │ │ ├── RecordingStateListener.java
│ │ │ ├── RequestListener.java
│ │ │ ├── ResultListener.java
│ │ │ ├── SimpleStateChangeTransition.java
│ │ │ ├── SpeakItem.java
│ │ │ ├── SpeechProfile.java
│ │ │ ├── SpeechRequestAudioPlayerPauseController.java
│ │ │ ├── State.java
│ │ │ ├── StateTransition.java
│ │ │ ├── ui
│ │ │ │ ├── AccessTokenUIHandler.java
│ │ │ │ ├── BaseUI.java
│ │ │ │ ├── CardUIHandler.java
│ │ │ │ ├── controllers
│ │ │ │ │ ├── AccessTokenViewController.java
│ │ │ │ │ ├── DeviceNameViewController.java
│ │ │ │ │ ├── ListenViewController.java
│ │ │ │ │ ├── LocaleViewController.java
│ │ │ │ │ ├── LoginLogoutViewController.java
│ │ │ │ │ ├── MainViewController.java
│ │ │ │ │ ├── NotificationsViewController.java
│ │ │ │ │ └── PlaybackViewController.java
│ │ │ │ ├── DeviceNameUIHandler.java
│ │ │ │ ├── DialogFactory.java
│ │ │ │ ├── graphical
│ │ │ │ │ ├── CardPanel.java
│ │ │ │ │ ├── GraphicalAccessTokenView.java
│ │ │ │ │ ├── GraphicalCardView.java
│ │ │ │ │ ├── GraphicalDeviceNameView.java
│ │ │ │ │ ├── GraphicalDialogFactory.java
│ │ │ │ │ ├── GraphicalListenView.java
│ │ │ │ │ ├── GraphicalLocaleView.java
│ │ │ │ │ ├── GraphicalLoginLogoutView.java
│ │ │ │ │ ├── GraphicalMainView.java
│ │ │ │ │ ├── GraphicalNotificationsView.java
│ │ │ │ │ ├── GraphicalPlaybackControlsView.java
│ │ │ │ │ ├── GraphicalUI.java
│ │ │ │ │ └── GraphicalUserSpeechVisualizerView.java
│ │ │ │ ├── headless
│ │ │ │ │ ├── HeadlessAccessTokenView.java
│ │ │ │ │ ├── HeadlessDeviceNameView.java
│ │ │ │ │ ├── HeadlessDialogFactory.java
│ │ │ │ │ ├── HeadlessListenView.java
│ │ │ │ │ ├── HeadlessLocaleView.java
│ │ │ │ │ ├── HeadlessLoginLogoutView.java
│ │ │ │ │ ├── HeadlessMainView.java
│ │ │ │ │ ├── HeadlessNotificationsView.java
│ │ │ │ │ ├── HeadlessPlaybackControlsView.java
│ │ │ │ │ ├── HeadlessUI.java
│ │ │ │ │ └── HeadlessUserSpeechVisualizerView.java
│ │ │ │ ├── ListenUIHandler.java
│ │ │ │ ├── LocaleUIHandler.java
│ │ │ │ ├── LoginLogoutUIHandler.java
│ │ │ │ ├── MainUIHandler.java
│ │ │ │ ├── NotificationsUIHandler.java
│ │ │ │ ├── PlaybackControlsUIHandler.java
│ │ │ │ ├── SpeechStateChangeListener.java
│ │ │ │ └── UserSpeechVisualizerUIHandler.java
│ │ │ ├── UserActivityListener.java
│ │ │ └── wakeword
│ │ │ ├── NewWakeWordReadyInterface.java
│ │ │ ├── WakeWordDetectedHandler.java
│ │ │ ├── WakeWordIPCConnectedClient.java
│ │ │ ├── WakeWordIPCFactory.java
│ │ │ ├── WakeWordIPC.java
│ │ │ └── WakeWordIPCSocket.java
│ │ └── resources
│ │ └── res
│ │ ├── alarm.mp3
│ │ ├── avs-blue-mic-icon.png
│ │ ├── avs-mic-icon.png
│ │ ├── default_notification_sound.mp3
│ │ ├── error.mp3
│ │ ├── README.txt
│ │ ├── start.mp3
│ │ ├── stop.mp3
│ │ └── version.properties
│ ├── ssl.cnf
│ ├── template_config_json
│ ├── template_generate_sh
│ └── template_ssl_cnf
└── wakeWordAgent
├── src
│ ├── CMakeLists.txt
│ ├── GPIOWakeWordEngine.cpp
│ ├── GPIOWakeWordEngine.h
│ ├── IPCInterface.cpp
│ ├── IPCInterface.h
│ ├── KittAiSnowboyWakeWordEngine.cpp
│ ├── KittAiSnowboyWakeWordEngine.h
│ ├── Logger.cpp
│ ├── Logger.h
│ ├── main.cpp
│ ├── PortAudioWrapper.cpp
│ ├── PortAudioWrapper.h
│ ├── SensoryWakeWordEngine.cpp
│ ├── SensoryWakeWordEngine.h
│ ├── WakeWordAgent.cpp
│ ├── WakeWordAgent.h
│ ├── WakeWordDetectedInterface.h
│ ├── WakeWordEngine.cpp
│ ├── WakeWordEngineFactory.cpp
│ ├── WakeWordEngineFactory.h
│ ├── WakeWordEngine.h
│ ├── WakeWordException.cpp
│ ├── WakeWordException.h
│ ├── WakeWordIPC.cpp
│ ├── WakeWordIPCFactory.cpp
│ ├── WakeWordIPCFactory.h
│ ├── WakeWordIPC.h
│ ├── WakeWordIPCSocket.cpp
│ ├── WakeWordIPCSocket.h
│ └── WakeWordUtils.h
└── tst
├── CMakeLists.txt
├── main.cpp
├── testGPIO.cpp
├── testGPIO.h
├── testIPCFactory.cpp
├── testIPCFactory.h
├── testKittAi.cpp
├── testKittAi.h
├── testLogger.cpp
├── testLogger.h
├── testSensory.cpp
└── testSensory.h
96 directories, 443 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论