├── .gitignore ├── Bot ├── 1-GetStarted │ ├── README.md │ ├── bot dev on web快速入门.docx │ └── rosai_bot_dev_intro.pdf ├── 2-RosAiDocument │ ├── 1-SkillsKit │ │ ├── getting-started │ │ │ ├── creat-and-publish.md │ │ │ └── images │ │ │ │ ├── Release.png │ │ │ │ ├── RollBACK.png │ │ │ │ ├── Subtemplate.png │ │ │ │ ├── Template.png │ │ │ │ ├── ai-assistant.png │ │ │ │ ├── bot-basic-info.png │ │ │ │ ├── bot-basic-info_server-address.png │ │ │ │ ├── bot-compile.png │ │ │ │ ├── build-bot.png │ │ │ │ ├── build-bot1.png │ │ │ │ ├── entity-item.png │ │ │ │ ├── entity-item_synonym.png │ │ │ │ ├── entity_basic info.png │ │ │ │ ├── intent-addr-test.png │ │ │ │ ├── intent-base-info.png │ │ │ │ ├── intent-para-test.png │ │ │ │ ├── intent-test.png │ │ │ │ ├── online-version.png │ │ │ │ ├── parameter.png │ │ │ │ ├── subtemplate-in-template.png │ │ │ │ ├── version-info.png │ │ │ │ └── version-manage.png │ │ ├── important-concept │ │ │ ├── README.md │ │ │ ├── entity.md │ │ │ ├── intent.md │ │ │ ├── slot.md │ │ │ ├── subtemplate.md │ │ │ └── template.md │ │ └── platform-introduction.md │ └── FAQ │ │ ├── get-started.md │ │ └── images │ │ ├── add_a.png │ │ ├── add_q.png │ │ ├── choose_classification.png │ │ ├── choose_classification_finished.png │ │ ├── creat_classification.png │ │ ├── faq.png │ │ ├── p1.png │ │ ├── p2.png │ │ ├── p3.png │ │ ├── p4.png │ │ ├── p5.png │ │ ├── qa.png │ │ └── qa_list.png ├── 3-ApiReference │ ├── README.md │ ├── emotion.md │ ├── event-request-dev-protocol-v1.md │ ├── event-request-dev-protocol-v2.md │ ├── images │ │ └── 对话系统逻辑视图.jpg │ ├── skill-dev-protocol.md │ ├── status.md │ └── text-request-dev-protocol-v3.md ├── 4-SkillDocument │ ├── 出行场景 │ │ ├── POI导航.md │ │ ├── README.md │ │ ├── 导航.md │ │ └── 通用POI搜索.md │ ├── 娱乐资讯 │ │ ├── README.md │ │ ├── 儿歌.md │ │ ├── 小众音频点播.md │ │ ├── 成语接龙.md │ │ ├── 故事.md │ │ ├── 教材.md │ │ ├── 新闻播报.md │ │ ├── 查星座.md │ │ ├── 电台.md │ │ ├── 笑话.md │ │ ├── 诗词.md │ │ ├── 音乐.md │ │ └── 音效.md │ ├── 技能模板.md │ ├── 最佳实践.md │ ├── 生活场景 │ │ ├── README.md │ │ ├── 亲戚关系计算.md │ │ ├── 十万个为什么.md │ │ ├── 单位换算.md │ │ ├── 口语对练.md │ │ ├── 日期时间.md │ │ ├── 查天气.md │ │ ├── 查股票.md │ │ ├── 查菜谱.md │ │ ├── 百科问题.md │ │ ├── 翻译-英译汉.md │ │ ├── 翻译.md │ │ ├── 聊天问答.md │ │ ├── 节假日查询.md │ │ ├── 计算器.md │ │ └── 货币换算.md │ ├── 知识教育 │ │ ├── AITeacher.md │ │ ├── AITeacher_2.md │ │ ├── README.md │ │ ├── 单词互动(待发布).md │ │ ├── 百科.md │ │ └── 诗词互动(待发布).md │ └── 系统设置 │ │ ├── New_闹钟.md │ │ ├── README.md │ │ ├── 休眠控制.md │ │ ├── 定时关机.md │ │ ├── 播放控制.md │ │ ├── 机器画像.md │ │ ├── 用户画像.md │ │ ├── 闹钟.md │ │ └── 音量控制.md ├── README.md └── SUMMARY.md ├── OS ├── APIReference │ ├── README.md │ └── SceneSDK │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── com │ │ └── roobo │ │ │ ├── account │ │ │ ├── AccountManager.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── asrinterface │ │ │ ├── AsrEvent.html │ │ │ ├── AsrEventListener.html │ │ │ ├── AsrEventType.html │ │ │ ├── AsrGrammar.Builder.html │ │ │ ├── AsrGrammar.html │ │ │ ├── AsrGrammarType.html │ │ │ ├── AsrManager.html │ │ │ ├── AsrRestartRecipient.html │ │ │ ├── GrammarManager.html │ │ │ ├── LoadGrammarListener.html │ │ │ ├── RecognizeLanguage.html │ │ │ ├── bean │ │ │ │ ├── AbstractGrammarTag.html │ │ │ │ ├── PredefineGrammarTag.html │ │ │ │ ├── SlotGrammarTag.html │ │ │ │ ├── StartGrammarTag.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── base │ │ │ ├── Constants.Broadcasts.html │ │ │ ├── Constants.MODULE.html │ │ │ ├── Constants.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── configure │ │ │ ├── Configure.html │ │ │ ├── ConfigureKeys.Config.ASR.html │ │ │ ├── ConfigureKeys.Config.Alarm.html │ │ │ ├── ConfigureKeys.Config.AppUpdater.html │ │ │ ├── ConfigureKeys.Config.Assistant.html │ │ │ ├── ConfigureKeys.Config.Cloud.html │ │ │ ├── ConfigureKeys.Config.Device.html │ │ │ ├── ConfigureKeys.Config.Host.html │ │ │ ├── ConfigureKeys.Config.TTS.html │ │ │ ├── ConfigureKeys.Config.Touch.html │ │ │ ├── ConfigureKeys.Config.Volume.html │ │ │ ├── ConfigureKeys.Config.html │ │ │ ├── ConfigureKeys.Status.Device.html │ │ │ ├── ConfigureKeys.Status.html │ │ │ ├── ConfigureKeys.html │ │ │ ├── WidgetConfig.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── core │ │ │ ├── ai │ │ │ │ ├── AICommand.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── authorizor │ │ │ │ ├── Authorizor.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── communication │ │ │ │ ├── CommandListener.html │ │ │ │ ├── Communicator.ICommunicationCallback.html │ │ │ │ ├── Communicator.html │ │ │ │ ├── DefaultService.html │ │ │ │ ├── Event.html │ │ │ │ ├── Memory.html │ │ │ │ ├── ModuleService.html │ │ │ │ ├── Parameter.html │ │ │ │ ├── ServiceConnectionListener.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── power │ │ │ │ ├── Constants.html │ │ │ │ ├── RooboPowerManager.RooboWakeLock.html │ │ │ │ ├── RooboPowerManager.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── scene │ │ │ │ ├── ParcelableValue.html │ │ │ │ ├── SceneEventListener.html │ │ │ │ ├── SceneHelpWrapper.OnSceneEventListener.html │ │ │ │ ├── SceneHelpWrapper.html │ │ │ │ ├── SceneHelper.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── sceneManager │ │ │ │ ├── SceneManager.html │ │ │ │ ├── SceneRecord.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── wrapper │ │ │ │ │ ├── OnTopSceneChangedListener.html │ │ │ │ │ ├── TopSceneChangedListenerWrapper.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ └── package-tree.html │ │ │ └── service │ │ │ │ ├── Constants.html │ │ │ │ ├── RooboServiceManager.html │ │ │ │ ├── StateBroadcast.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── error │ │ │ ├── Error.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── focusinterface │ │ │ ├── FocusManager.html │ │ │ ├── OnFocusChangedListener.html │ │ │ ├── OnModuleFocusChangedListener.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── location │ │ │ ├── LocationInfo.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── service │ │ │ │ ├── LocationProxy.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── logcat │ │ │ ├── AndroidLogImpl.html │ │ │ ├── CrashHandlerApplication.CrashHandler.html │ │ │ ├── CrashHandlerApplication.html │ │ │ ├── Log.LogInterface.html │ │ │ ├── Log.html │ │ │ ├── OSDebug.html │ │ │ ├── RooboLogImpl.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── nlu │ │ │ └── interfaces │ │ │ │ ├── NluHelper.html │ │ │ │ ├── NluUtils.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── rml │ │ │ ├── RMLObject.html │ │ │ ├── RMLTreeGenerator.html │ │ │ ├── ValueReference.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── rules │ │ │ │ ├── Alias.html │ │ │ │ ├── AndMatchGroup.html │ │ │ │ ├── IMatch.html │ │ │ │ ├── IOutputTranslator.html │ │ │ │ ├── MatchExpression.html │ │ │ │ ├── MatchGroup.html │ │ │ │ ├── MatchItem.html │ │ │ │ ├── NotMatchGroup.html │ │ │ │ ├── OrMatchGroup.html │ │ │ │ ├── Rule.html │ │ │ │ ├── Rules.ExecuteListener.html │ │ │ │ ├── Rules.html │ │ │ │ ├── Utils.html │ │ │ │ ├── operator │ │ │ │ ├── AndOperator.html │ │ │ │ ├── ContainsOperator.html │ │ │ │ ├── EqualOperator.html │ │ │ │ ├── GreaterOperator.html │ │ │ │ ├── IOperator.html │ │ │ │ ├── InOperator.html │ │ │ │ ├── LessOperator.html │ │ │ │ ├── MinusOperator.html │ │ │ │ ├── OperatorFactory.html │ │ │ │ ├── OrOperator.html │ │ │ │ ├── PlusOperator.html │ │ │ │ ├── UnEqualOperator.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── time │ │ │ │ │ ├── CountInOperator.html │ │ │ │ │ ├── TimeEvent.html │ │ │ │ │ ├── WithinOperator.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ └── package-tree.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── service │ │ │ ├── TTSServiceManager.html │ │ │ ├── TtsListener.html │ │ │ ├── TtsService.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── state │ │ │ ├── OSState.html │ │ │ ├── StateCollector.OnStateGroupChangeListener.html │ │ │ ├── StateCollector.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ ├── toolkit │ │ │ └── decision │ │ │ │ ├── DecisionMaker.html │ │ │ │ ├── DecisionTreeNode.TypeAdapter.html │ │ │ │ ├── DecisionTreeNode.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── utils │ │ │ ├── BatteryUtil.html │ │ │ ├── ByteConvertor.html │ │ │ ├── CheckNetworkListener.html │ │ │ ├── DeviceUtil.html │ │ │ ├── FileUtil.html │ │ │ ├── JsonUtil.html │ │ │ ├── LCSUtil.html │ │ │ ├── NetworkUtils.NetType.html │ │ │ ├── NetworkUtils.html │ │ │ ├── PackageUtil.html │ │ │ ├── PreferencesUtil.html │ │ │ ├── PreparedHandlerThread.PrepareCallback.html │ │ │ ├── PreparedHandlerThread.html │ │ │ ├── ProcessUtil.html │ │ │ ├── SecurityUtil.html │ │ │ ├── ServiceFetcher.OnServiceStateChangeListener.html │ │ │ ├── ServiceFetcher.html │ │ │ ├── SoundEffect.html │ │ │ ├── Storage.StorageType.html │ │ │ ├── Storage.html │ │ │ ├── SynchronizeInvoker.html │ │ │ ├── TextHighlightController.html │ │ │ ├── VolumeUtil.html │ │ │ ├── WorkQueuedExecutor.Callback.html │ │ │ ├── WorkQueuedExecutor.html │ │ │ ├── ZipUtil.SizeLimitZipResult.html │ │ │ ├── ZipUtil.ZipTraversalCallback.html │ │ │ ├── ZipUtil.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ │ └── widget │ │ │ ├── CustomTextView.html │ │ │ ├── TypefaceFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-files │ │ ├── index-1.html │ │ ├── index-10.html │ │ ├── index-11.html │ │ ├── index-12.html │ │ ├── index-13.html │ │ ├── index-14.html │ │ ├── index-15.html │ │ ├── index-16.html │ │ ├── index-17.html │ │ ├── index-18.html │ │ ├── index-19.html │ │ ├── index-2.html │ │ ├── index-20.html │ │ ├── index-21.html │ │ ├── index-22.html │ │ ├── index-23.html │ │ ├── index-24.html │ │ ├── index-3.html │ │ ├── index-4.html │ │ ├── index-5.html │ │ ├── index-6.html │ │ ├── index-7.html │ │ ├── index-8.html │ │ └── index-9.html │ │ ├── index.html │ │ ├── overview-frame.html │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── script.js │ │ ├── serialized-form.html │ │ └── stylesheet.css ├── README.md ├── SUMMARY.md ├── assets │ ├── action.png │ ├── command_send_to_scene.png │ ├── full_user_interaction.jpg │ ├── jbridge_arch.png │ ├── power_config.png │ ├── quickStartDataSplit_1.png │ ├── quickStartDeploy_1.png │ ├── quickStartDeploy_2.png │ ├── quickStartDeploy_3.png │ ├── quickStartDeploy_4.png │ ├── quickStartDeploy_5.png │ ├── quickStartDeploy_6.png │ ├── quickStartDeploy_7.png │ ├── quickStartDeploy_8.png │ ├── quickStartDeploy_9.png │ ├── quick_start_1.png │ ├── quick_start_2.png │ ├── quick_start_3.png │ ├── quick_start_4.png │ ├── quick_start_5.png │ ├── quick_start_6.png │ ├── quick_start_7.png │ ├── quick_start_8.png │ ├── scene_lifecycle.jpg │ ├── top_scene_change.png │ ├── user_interact_process.png │ └── user_interaction.vsdx ├── basis │ ├── AIComm.md │ ├── full_interaction_process.md │ ├── module.md │ ├── scene.md │ └── service.md ├── cloud_ai.md ├── jbridge │ └── os_js_runtime.md ├── quickstart │ ├── quickStart.md │ ├── quickStartApply.md │ ├── quickStartCreateScene.md │ └── quickStartDeploy.md ├── services │ ├── ENLU │ │ ├── enlu.md │ │ ├── enlu_context.md │ │ ├── enlu_grammar.md │ │ ├── enlu_load_template.md │ │ ├── grammar.md │ │ └── helper.md │ ├── asr │ │ ├── asr.md │ │ ├── asr_offline.md │ │ ├── asr_offline_grammar.md │ │ └── asr_slot.md │ ├── authorizor.md │ ├── communicator.md │ ├── configure │ │ ├── configure.md │ │ ├── configure_rules.md │ │ └── sdcard_config.md │ ├── focus.md │ ├── power_manager.md │ ├── rules │ │ ├── processor.md │ │ ├── processor_rules.md │ │ └── rml.md │ ├── sceneservice.md │ └── service_manager.md ├── theme │ ├── action.md │ ├── actionrules.md │ ├── actionswitchrules.md │ ├── personaclient.md │ ├── personaplayer.md │ ├── sceneswitch.md │ └── themesystem.md ├── third_os_query.md ├── third_os_suggest.md └── tts │ └── tts.md ├── RAT-SDK ├── RATSDKDemo.rar ├── README.md ├── assets │ └── offlineRes.png └── javadoc │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── com │ └── roobo │ │ ├── toolkit │ │ ├── base │ │ │ ├── RError.html │ │ │ ├── auth │ │ │ │ ├── RAuth.html │ │ │ │ ├── RAuthResultListener.html │ │ │ │ ├── package-frame.html │ │ │ │ └── package-summary.html │ │ │ ├── package-frame.html │ │ │ └── package-summary.html │ │ └── tts │ │ │ ├── RTTSPlayer.TTSConfigure.html │ │ │ ├── RTTSPlayer.html │ │ │ ├── TtsListener.html │ │ │ ├── package-frame.html │ │ │ └── package-summary.html │ │ └── voice │ │ ├── Parameter.DictationType.html │ │ ├── Parameter.html │ │ ├── RooboCloudRecognizer.html │ │ ├── RooboLocalRecognizer.html │ │ ├── RooboUtility.html │ │ ├── RooboWakeuper.html │ │ ├── iat │ │ ├── RVADListener.html │ │ ├── RecognizeListener.html │ │ ├── VolumeChangeListener.html │ │ ├── package-frame.html │ │ └── package-summary.html │ │ ├── package-frame.html │ │ └── package-summary.html │ ├── constant-values.html │ ├── help-doc.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── package-list │ ├── script.js │ └── stylesheet.css ├── README.md ├── SmartSoundBox ├── README.md └── assets │ └── led.png ├── StoryMachine └── quick_start.md ├── VUI-SDK ├── 1.0 │ ├── README.md │ ├── VUISDKDemo.zip │ ├── javaDoc.zip │ └── javaDoc │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── com │ │ └── roobo │ │ │ └── vui │ │ │ ├── api │ │ │ ├── AutoTypeController.html │ │ │ ├── IASRController.html │ │ │ ├── InitListener.html │ │ │ ├── VUIApi.InitParam.InitParamBuilder.html │ │ │ ├── VUIApi.InitParam.html │ │ │ ├── VUIApi.SourceType.html │ │ │ ├── VUIApi.VUIType.html │ │ │ ├── VUIApi.html │ │ │ ├── asr │ │ │ │ ├── RASRListener.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── tts │ │ │ │ ├── RTTSListener.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ └── common │ │ │ └── recognizer │ │ │ ├── ASRResult.html │ │ │ ├── EventType.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-files │ │ ├── index-1.html │ │ ├── index-10.html │ │ ├── index-11.html │ │ ├── index-12.html │ │ ├── index-13.html │ │ ├── index-2.html │ │ ├── index-3.html │ │ ├── index-4.html │ │ ├── index-5.html │ │ ├── index-6.html │ │ ├── index-7.html │ │ ├── index-8.html │ │ └── index-9.html │ │ ├── index.html │ │ ├── overview-frame.html │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── script.js │ │ └── stylesheet.css └── 2.0 │ ├── VUI_2.0_User_Guide.md │ └── javaDoc │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── com │ └── roobo │ │ ├── media │ │ ├── AudioChunkRecord.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ ├── vui │ │ ├── App.html │ │ ├── GlobalConfig.html │ │ ├── api │ │ │ ├── AutoTypeController.html │ │ │ ├── IASRController.html │ │ │ ├── IOfflineRecognizerController.html │ │ │ ├── InitListener.html │ │ │ ├── VUIApi.InitParam.InitParamBuilder.html │ │ │ ├── VUIApi.InitParam.html │ │ │ ├── VUIApi.VUIType.html │ │ │ ├── VUIApi.html │ │ │ ├── asr │ │ │ │ ├── CloudManualRecognizer.html │ │ │ │ ├── CloudRecognizer.html │ │ │ │ ├── OfflineRecognizer.html │ │ │ │ ├── RASRListener.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── audiosource │ │ │ │ ├── BaseAudioGenerator.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── tts │ │ │ │ ├── BasePlayer.TTSType.html │ │ │ │ ├── BasePlayer.html │ │ │ │ ├── RTTSListener.html │ │ │ │ ├── RTTSOfflinePlayer.TTSConfigure.html │ │ │ │ ├── RTTSOfflinePlayer.html │ │ │ │ ├── RTTSOnlinePlayer.html │ │ │ │ ├── RTTSPlayer.html │ │ │ │ ├── RTTSPlayerFactory.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ ├── business │ │ │ ├── IRecognizerController.StateLevel_1.html │ │ │ ├── IRecognizerController.StateLevel_2.html │ │ │ ├── IRecognizerController.html │ │ │ ├── InitTask.html │ │ │ ├── auth │ │ │ │ ├── AuthUtils.html │ │ │ │ ├── RAuth.html │ │ │ │ ├── RAuthInter.html │ │ │ │ ├── RAuthResultListener.html │ │ │ │ ├── RSA.html │ │ │ │ ├── entity │ │ │ │ │ ├── DeviceInfo.html │ │ │ │ │ ├── RAuthData.html │ │ │ │ │ ├── RightInfo.MicType.html │ │ │ │ │ ├── RightInfo.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ └── package-tree.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── controller │ │ │ │ ├── AutoWakeupCloudController.html │ │ │ │ ├── BaseController.html │ │ │ │ ├── ManualVADController.html │ │ │ │ ├── RecognizerFactory.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ ├── policy │ │ │ │ ├── ASRResultPolicyFactory.html │ │ │ │ ├── MixedResultPolicy.html │ │ │ │ ├── ResultPolicy.html │ │ │ │ ├── SimplePolicy.html │ │ │ │ ├── UseOnlineResultPolicy.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ └── tts │ │ │ │ └── nuance │ │ │ │ ├── VocalizerTTS.html │ │ │ │ ├── XmlParser.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ ├── common │ │ │ ├── LanguageInfo.html │ │ │ ├── RooboCloud.html │ │ │ ├── audiosource │ │ │ │ ├── AndroidAudioSource.CustomAudioSource.html │ │ │ │ ├── AndroidAudioSource.html │ │ │ │ ├── AudioSource.html │ │ │ │ ├── AudioSourceFactory.html │ │ │ │ ├── MonoAudioSource.CustomAudioSource.html │ │ │ │ ├── MonoAudioSource.html │ │ │ │ ├── SSEAudioSource.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ ├── pipe │ │ │ │ ├── CloudRecognizePipe.html │ │ │ │ ├── CustomBufferingPipe.html │ │ │ │ ├── CustomRecognizerAudioSink.html │ │ │ │ ├── EasyBufferingPipe.html │ │ │ │ ├── NoBufferPipe.html │ │ │ │ ├── SseMultiChannelCountPipe.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── recognizer │ │ │ │ ├── ASRResult.html │ │ │ │ ├── BaseCloudRecognizer.TokenRunnable.html │ │ │ │ ├── BaseCloudRecognizer.html │ │ │ │ ├── EventType.html │ │ │ │ ├── IRecognizer.Type.html │ │ │ │ ├── IRecognizer.html │ │ │ │ ├── OfflineGrammarScope.html │ │ │ │ ├── OnASREventListener.html │ │ │ │ ├── OnASRResultListener.html │ │ │ │ ├── OnSpeechListener.html │ │ │ │ ├── OnWakeUpListener.html │ │ │ │ ├── VADBufferPipe.html │ │ │ │ ├── VADPipe.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── task │ │ │ │ ├── TaskCallback.html │ │ │ │ ├── TaskFinishCallback.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ └── vocon │ │ │ │ ├── BnfGrammar.html │ │ │ │ ├── LoadGrammarListener.html │ │ │ │ ├── SseVocon.html │ │ │ │ ├── VoconGrammar.html │ │ │ │ ├── VoconGrammarData.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ ├── upload │ │ │ ├── FileUpload.FileUploadListener.html │ │ │ ├── FileUpload.html │ │ │ ├── PcmUploadManager.html │ │ │ ├── UploadListener.html │ │ │ ├── ZipUtils.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ └── util │ │ │ ├── FileSink.html │ │ │ ├── FileUtil.html │ │ │ ├── JsonUtil.html │ │ │ ├── LocalResultBase.html │ │ │ ├── LocalResultLSTimeout.html │ │ │ ├── LocalResultMotion.html │ │ │ ├── LocalResultOneshot.html │ │ │ ├── LocalResultWakeUp.html │ │ │ ├── Log.html │ │ │ ├── NetworkUtils.CheckNetworkListener.html │ │ │ ├── NetworkUtils.NetType.html │ │ │ ├── NetworkUtils.html │ │ │ ├── NuanceHelper.html │ │ │ ├── Result.html │ │ │ ├── SseProxyPool.html │ │ │ ├── Utils.html │ │ │ ├── WakeUpInfo.html │ │ │ ├── WakeupResult.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ └── xutils │ │ ├── HttpUtils.html │ │ ├── cache │ │ ├── FileNameGenerator.html │ │ ├── KeyExpiryMap.html │ │ ├── LruDiskCache.Editor.html │ │ ├── LruDiskCache.Snapshot.html │ │ ├── LruDiskCache.html │ │ ├── LruMemoryCache.html │ │ ├── MD5FileNameGenerator.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ ├── exception │ │ ├── BaseException.html │ │ ├── DbException.html │ │ ├── HttpException.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ ├── http │ │ ├── HttpCache.html │ │ ├── HttpHandler.State.html │ │ ├── HttpHandler.html │ │ ├── RequestParams.HeaderItem.html │ │ ├── RequestParams.html │ │ ├── ResponseInfo.html │ │ ├── ResponseStream.html │ │ ├── SyncHttpHandler.html │ │ ├── callback │ │ │ ├── DefaultHttpRedirectHandler.html │ │ │ ├── FileDownloadHandler.html │ │ │ ├── HttpRedirectHandler.html │ │ │ ├── RequestCallBack.html │ │ │ ├── RequestCallBackHandler.html │ │ │ ├── StringDownloadHandler.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ │ ├── client │ │ │ ├── DefaultSSLSocketFactory.html │ │ │ ├── HttpRequest.HttpMethod.html │ │ │ ├── HttpRequest.html │ │ │ ├── RetryHandler.html │ │ │ ├── entity │ │ │ │ ├── BodyParamsEntity.html │ │ │ │ ├── FileUploadEntity.html │ │ │ │ ├── GZipDecompressingEntity.html │ │ │ │ ├── InputStreamUploadEntity.html │ │ │ │ ├── UploadEntity.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── multipart │ │ │ │ ├── FormBodyPart.html │ │ │ │ ├── HttpMultipartMode.html │ │ │ │ ├── MIME.html │ │ │ │ ├── MultipartEntity.CallBackInfo.html │ │ │ │ ├── MultipartEntity.html │ │ │ │ ├── content │ │ │ │ │ ├── AbstractContentBody.html │ │ │ │ │ ├── ByteArrayBody.html │ │ │ │ │ ├── ContentBody.html │ │ │ │ │ ├── ContentDescriptor.html │ │ │ │ │ ├── FileBody.html │ │ │ │ │ ├── InputStreamBody.html │ │ │ │ │ ├── StringBody.html │ │ │ │ │ ├── package-frame.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ └── package-tree.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── util │ │ │ │ ├── URIBuilder.html │ │ │ │ ├── URLEncodedUtils.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ └── package-tree.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ ├── task │ │ ├── Priority.html │ │ ├── PriorityAsyncTask.html │ │ ├── PriorityExecutor.html │ │ ├── PriorityObject.html │ │ ├── PriorityObjectBlockingQueue.html │ │ ├── PriorityRunnable.html │ │ ├── TaskHandler.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ └── util │ │ ├── CharsetUtils.html │ │ ├── DoubleKeyValueMap.html │ │ ├── IOUtils.html │ │ ├── LogUtils.CustomLogger.html │ │ ├── LogUtils.html │ │ ├── MimeTypeUtils.html │ │ ├── OtherUtils.html │ │ ├── PreferencesCookieStore.SerializableCookie.html │ │ ├── PreferencesCookieStore.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-files │ ├── index-1.html │ ├── index-10.html │ ├── index-11.html │ ├── index-12.html │ ├── index-13.html │ ├── index-14.html │ ├── index-15.html │ ├── index-16.html │ ├── index-17.html │ ├── index-18.html │ ├── index-19.html │ ├── index-2.html │ ├── index-20.html │ ├── index-21.html │ ├── index-22.html │ ├── index-23.html │ ├── index-24.html │ ├── index-3.html │ ├── index-4.html │ ├── index-5.html │ ├── index-6.html │ ├── index-7.html │ ├── index-8.html │ └── index-9.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css ├── VoiceService-SDK ├── README.md ├── assets │ └── workflow.png └── javadoc │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── com │ └── roobo │ │ ├── ai │ │ ├── RooboAI.AudioStatus.html │ │ ├── RooboAI.Params.html │ │ ├── RooboAI.RooboAICallback.html │ │ ├── RooboAI.RooboWifiInfo.html │ │ ├── RooboAI.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ └── toolkit │ │ ├── RError.html │ │ ├── login │ │ ├── Authentification.html │ │ ├── InnerLoginListener.html │ │ ├── LoginResultListener.html │ │ ├── UserInfo.DeviceIDType.html │ │ ├── UserInfo.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ ├── recognizer │ │ ├── InitListener.html │ │ ├── OnAIResponseListener.html │ │ ├── OnASRResultListener.html │ │ ├── RooboRecognizer.ASRLanguage.html │ │ ├── RooboRecognizer.html │ │ ├── RooboVADRecognizer.html │ │ ├── SpeechDetect.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ │ └── tts │ │ ├── OnTTSResultListener.html │ │ ├── RooboTTS.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-files │ ├── index-1.html │ ├── index-10.html │ ├── index-11.html │ ├── index-12.html │ ├── index-13.html │ ├── index-14.html │ ├── index-15.html │ ├── index-2.html │ ├── index-3.html │ ├── index-4.html │ ├── index-5.html │ ├── index-6.html │ ├── index-7.html │ ├── index-8.html │ └── index-9.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── script.js │ └── stylesheet.css ├── 智能手表 ├── README.md ├── assets │ ├── quickStartDeploy_1.png │ ├── quickStartDeploy_2.png │ ├── quickStartDeploy_3.png │ ├── quickStartDeploy_4.png │ └── quickStartDeploy_5.png ├── quickStartCreateScene.md ├── quickStartDataSplit.md ├── quickStartDeploy.md └── quickStartSN.md └── 账户与应用 └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | _book/ 2 | .DS_Store 3 | Bot/_book/ 4 | Bot/node_modules/ 5 | Bot/book.json 6 | -------------------------------------------------------------------------------- /Bot/1-GetStarted/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/1-GetStarted/README.md -------------------------------------------------------------------------------- /Bot/1-GetStarted/bot dev on web快速入门.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/1-GetStarted/bot dev on web快速入门.docx -------------------------------------------------------------------------------- /Bot/1-GetStarted/rosai_bot_dev_intro.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/1-GetStarted/rosai_bot_dev_intro.pdf -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/Release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/Release.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/RollBACK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/RollBACK.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/Subtemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/Subtemplate.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/Template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/Template.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/ai-assistant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/ai-assistant.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/bot-basic-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/bot-basic-info.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/bot-basic-info_server-address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/bot-basic-info_server-address.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/bot-compile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/bot-compile.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/build-bot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/build-bot.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/build-bot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/build-bot1.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/entity-item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/entity-item.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/entity-item_synonym.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/entity-item_synonym.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/entity_basic info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/entity_basic info.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-addr-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-addr-test.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-base-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-base-info.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-para-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-para-test.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/intent-test.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/online-version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/online-version.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/parameter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/parameter.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/subtemplate-in-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/subtemplate-in-template.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/version-info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/version-info.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/version-manage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/getting-started/images/version-manage.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/important-concept/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/important-concept/README.md -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/important-concept/intent.md: -------------------------------------------------------------------------------- 1 | # 基本信息 2 | 意图指BOT要满足的用户的请求或目的。如用户说“今天天气怎么样”,意图就是“查询天气”。 3 | 当我们要创建一个意图时,我们需要提供意图名称,意图描述,父意图名称,上文,下文。 4 | - 意图名称 5 | 1.BOT响应的标识 6 | 2.必填项。1-50位,字母,数字,下划线的组合,且以字母开头,不能以下划线结尾。 7 | - 意图描述 8 | 1.意图的简单描述。 9 | 2.必填项。1-100位,建议简短且见名知意。 10 | - 父意图名称 11 | 1.意图的一个更高层次的抽象,真正的动作名称。一般来说和意图名称一致。 12 | 2.必填项。1-50位,字母,数字,下划线的组合,且以字母开头,不能以下划线结尾。 13 | - 上文 14 | 1.添加上文的意图,只能是当前会话在意图所在场景(BOT)中时,才有可能被触发。 15 | 2.不能为除下划线以外的特殊字符,没有长度限制 16 | - 下文 17 | 1.添加下文的意图,表示下一个会话可能是一个多轮会话,可能触发上文和这个下文一致的意图。 18 | 2.不能为除下划线以外的特殊字符,没有长度限制 19 | 20 | # 示例 21 | 在天气场景中,有三个意图 22 | - GetWeather(获取天气信息) 23 | - GetCityWeather(上海的天气怎么样?) 24 | - GetCity(北京的呢?) 25 | 26 | GetWeather为GetCityWeather和GetCity的父意图。 27 | 28 | 对于GetCityWeather意图来说,它是一个起始句式,可以直接进入天气场景,因此其意图的上文应该不进行填写。而天气场景是一个多轮场景,所以这个意图有一个“启下”的使命,那么它的下文应该进行填写,这里我们写成:weather 29 | 30 | 对于GetCity意图来说,直接说:北京的呢? 并不能知道它是天气场景的query,但是如果已经在天气场景中了,那么这个query就有意义了,所以它的上文需要进行填写,这里写成:weather,表示它可以在GetCityWeather这个意图之后被命中。至于它的下文是否进行填写,需要看业务需求,这里因为这个意图后面还可以继续进行天气的询问,所以下文填写:weather 31 | -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/important-concept/slot.md: -------------------------------------------------------------------------------- 1 | # 槽位 2 | 槽位是意图中的关键信息参数,在触发意图后解析出该信息并用于后续意图的执行。比如在查天气中用户Query“今天上海天气怎么样”,其中得两个槽位以及值分别是“city=上海”,“date=今天” 3 | - 必填槽 4 | 5 | 所谓“必填槽”,是在触发意图后该意图必须填充的槽位,如果不填充就无法执行后续的意图执行。同样对于查天气这个意图来说,“今天天气怎么样”可以触发查天气的意图,但用户Query中并没有包含“城市”这个槽位则无法请求天气服务,所以“城市”是一个必填槽位,并可以通过配置追问话术去询问,让用户填充上该槽位 6 | 7 | # 使用方法 8 | 在天气场景中,意图GetCityWeather (上海的天气怎么样?),参数应该是:参数名-city, 参数值-上海 9 | -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/important-concept/subtemplate.md: -------------------------------------------------------------------------------- 1 | # 基本信息 2 | 3 | 子模板表示能抽象出来的一类小模板 4 | 5 | # 语法 6 | 7 | ## []语法 8 | - []中用|来进行字,词的分割,表示“或” 9 | - []中可以有固定的字词或者实体 10 | 11 | ## []语法示例 12 | - [A|B|CD]EF 表示AEF或BEF或CDEF 13 | - [A|@sys.date:date|] 表示A或@sys.date或空 14 | 15 | # 示例 16 | 拿机票做例,出发地可以进行抽象,命名为startCity, 17 | 子模板内容为:[从@sys.entity.city:city起飞|@sys.entity:city:city起飞|从@sys.entity:city:city](注意不能使用<<>>语法)。
18 | 引用子模板时,将其置于<<>>中(且只能放置在这个语法中),使用@pattern.startCity来引用,如<<@pattern.startCity>> 19 | 如果需要引用系统子模板,需要用@sys.pattern.XXX 20 | -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/important-concept/template.md: -------------------------------------------------------------------------------- 1 | # 基本信息 2 | - 模板,即用户query时需满足的句式 3 | - 模板,是一个模式,满足了这个模式就可以触发该模式所在的意图和场景 4 | 5 | # 语法 6 | ## []语法 7 | - []中用|来进行字,词的分割,表示“或” 8 | - []中可以有固定的字词或者实体 9 | 10 | ### []语法示例 11 | - [A|B|CD]EF 表示AEF或BEF或CDEF 12 | - [A|@sys.date:date|] 表示A或@sys.date或空 13 | 14 | ## <<>>语法 15 | 该语法表示<<>>中的所有段都可以进行位置上的交换,每个段可以跟一个对这个段出现次数的要求语法。 16 | 17 | ### 出现次数语法 18 | 19 | - 至少出现一次:@pattern.A:A(1+) 20 | - 可以出现0次到多次:@pattern.A:A(0+) 21 | - 能并只能出现1次:@pattern.A:A(1) 或@pattern.A(1) 22 | - 可以出现0-1次:@pattern.A 23 | 24 | ### <<>>语法示例 25 | <<@pattern.A|@pattern.B>>可以匹配: AB, BA, A, B, 空 26 | <<@pattern.A:A(0+)|@pattern.B:B(1+)>>: 可以匹配AB, BA, AAB, AABBB, BB, BBAA等 27 | <<@pattern.A:A(1)|@pattern.B(1)>>:可以匹配: AB, BA 28 | 29 | ### <<>>语法注意 30 | <<>>中只能出现子模板。 <<>>中的"|"作为分隔子模板的符号,不存在<>的语法 31 | 另外如果使用了(0+)或者(1+),请务必为你的子模板设置一个引用变量名称,如@pattern.A:var_A(0+)。 因为(0+)和(1+)返回的是一个列表。 32 | -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/1-SkillsKit/platform-introduction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/1-SkillsKit/platform-introduction.md -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/get-started.md: -------------------------------------------------------------------------------- 1 | 2 | # 自定义问答 3 | 在这里,您可以给自己的应用创建一些更开放性的问答对,让应用更智能化。 4 | ## 一. 创建 5 | 登录ROS.AI平台->选择应用->Bot服务->AI助手管理-> 自定义问答 6 | ![image](images/faq.png) 7 | ### 1. 创建分类 8 | ![image](images/creat_classification.png) 9 | ### 2. 创建问答 10 | ![image](images/qa.png) 11 | #### 2.1 选择分类 12 | ![image](images/choose_classification.png) 13 | ![image](images/choose_classification_finished.png) 14 | #### 2.2 添加问题 15 | 添加完问题后,点击“保存”,问题整体进行存储 16 | ![image](images/add_q.png) 17 | #### 2.3 添加回答 18 | 回答由多个模板(最多10个)组成。模板分为文本,音频,图片。每个模板最多支持创建5条。每个模板也是整体保存。 19 | ![image](images/add_a.png) 20 | ### 3. 问答列表 21 | ![image](images/qa_list.png) 22 | ## 二. 使用场景 23 | ### 1. 有屏设备 24 | 问题:为什么说太阳系不在银河系的中心? 25 | 回答:(1)美丽的银河系是这样的 26 | (2) 27 | ![image](images/p1.png) 28 | ![image](images/p2.png) 29 | ![image](images/p3.png) 30 | ![image](images/p4.png) 31 | ![image](images/p5.png) 32 | (3)沙普利对球状星团和造父变星进行系统的研究,推出太阳系不在银河系中心,而是处于银河系边缘,银河系的中心在人马座方向 33 | (4)让我们感受一下银河系的声音 34 | (5)播放上传的“银河系”的音频 35 | ### 2. 无屏设备 36 | 问题:小猫的叫声是什么样的? 37 | 回答:(1)小猫的叫声是这样的 38 | (2)播放上传的“小猫叫声”的音频 39 | 40 | -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/add_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/add_a.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/add_q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/add_q.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/choose_classification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/choose_classification.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/choose_classification_finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/choose_classification_finished.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/creat_classification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/creat_classification.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/faq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/faq.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/p1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/p1.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/p2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/p2.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/p3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/p3.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/p4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/p4.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/p5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/p5.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/qa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/qa.png -------------------------------------------------------------------------------- /Bot/2-RosAiDocument/FAQ/images/qa_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/2-RosAiDocument/FAQ/images/qa_list.png -------------------------------------------------------------------------------- /Bot/3-ApiReference/README.md: -------------------------------------------------------------------------------- 1 | 2 | 下面是ROSAI对话系统逻辑视图 3 |
4 | ![protocol-roadmap](images/对话系统逻辑视图.jpg) 5 | > 图中箭头所示协议参见本目录中相应的同名文件 6 | > 7 | 8 | ### 一些概念 9 | 10 | 在了解本文所描述协议之前,需要对ROSAI对话系统中的一些概念作如下说明: 11 | 12 | * **终端** - 用于向ROSAI发起请求和处理返回结果的设备端。客户一般可以基于Roobo OS快速构建一个客制化的版本。*终端* 主要请求类型包括语音、文本、图像、事件。 13 | * **ROSAI** - [_Roobo AI开放平台_](https://bot.ros.ai)。ROSAI中 *网关* 用于传递请求和分发请求。策略引擎加载规则并由事件请求驱动做行为输出。自然语言计算引擎由文本请求驱动做分析计算。这两个计算引擎一起构成云端大脑,分析请求并生成相应的回复。 14 | * **技能服务** - 不是所有的技能都需要开发技能服务,[_Roobo AI开放平台_](https://bot.ros.ai)提供意图答复配置可以满足一些简单的用户场景,除此之外若用户需要实现复杂对话流程管理,则需要开发一个服务。客户一般可以基于Roobo Skill-Dev-SDK(目前只支持Golang版本,请邮件至rosai@roobo.com申请)快速构建一个技能服务。 15 | -------------------------------------------------------------------------------- /Bot/3-ApiReference/emotion.md: -------------------------------------------------------------------------------- 1 | ## Level定义 2 | 一级情绪标识码, 分为16类, int型。 3 | 4 | 5 | | Level | Description | 6 | | :--- | :--- | 7 | | 0 | 静 | 8 | | 1 | 喜 | 9 | | 2 | 怒 | 10 | | 3 | 悲 | 11 | | 4 | 惊 | 12 | | 5 | 恐 | 13 | | 6 | 忌 | 14 | | 7 | 烦 | 15 | | 8 | 慌 | 16 | | 9 | 安 | 17 | | 10 | 敬 | 18 | | 11 | 羞 | 19 | | 12 | 思 | 20 | | 13 | 愿 | 21 | | 14 | 疑 | 22 | | 15 | 乏 | 23 | 24 | 25 | 26 | ## Code定义 27 | 二级情绪标识码, 共45类, string型。 28 | 29 | 30 | | Code| Description | Level | 31 | | :--- | :--- | :--- | 32 | | A001 | 平静/正常 | 0 | 33 | | B001 | 开心 | 1 | 34 | | B002 | 兴奋 | 1 | 35 | | B003 | 极度兴奋 | 1 | 36 | | C001 | 不满 | 2 | 37 | | C002 | 不悦 | 2 | 38 | | C003 | 生气 | 2 | 39 | | C004 | 愤怒 | 2 | 40 | | C005 | 极度愤怒 | 2 | 41 | | D001 | 委屈 | 3 | 42 | | D002 | 沮丧 | 3 | 43 | | D003 | 失望 | 3 | 44 | | D004 | 内疚 | 3 | 45 | | D005 | 悲伤 | 3 | 46 | | D006 | 痛苦 | 3 | 47 | | E001 | 惊讶 | 4 | 48 | | E002 | 震惊 | 4 | 49 | | F001 | 恐惧 | 5 | 50 | | G001 | 嫉妒 | 6 | 51 | | G002 | 憎恨 | 6 | 52 | | G003 | 厌恶 | 6 | 53 | | G004 | 责备 | 6 | 54 | | H001 | 烦躁 | 7 | 55 | | I001 | 警惕 | 8 | 56 | | I002 | 焦虑 | 8 | 57 | | I003 | 慌张 | 8 | 58 | | J001 | 安心 | 9 | 59 | | J002 | 满足 | 9 | 60 | | J003 | 放松 | 9 | 61 | | K001 | 尊敬 | 10 | 62 | | K002 | 崇拜 | 10 | 63 | | K003 | 赞扬 | 10 | 64 | | K004 | 相信 | 10 | 65 | | K005 | 喜爱 | 10 | 66 | | L001 | 害羞 | 11 | 67 | | M001 | 思念 | 12 | 68 | | M002 | 期待 | 12 | 69 | | M003 | 渴望 | 12 | 70 | | N001 | 祝福/祝愿 | 13 | 71 | | O001 | 好奇 | 14 | 72 | | O002 | 疑惑 | 14 | 73 | | P001 | 无聊 | 15 | 74 | | P002 | 乏味 | 15 | 75 | | P003 | 昏睡 | 15 | 76 | | P004 | 疲劳 | 15 | 77 | -------------------------------------------------------------------------------- /Bot/3-ApiReference/images/对话系统逻辑视图.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/Bot/3-ApiReference/images/对话系统逻辑视图.jpg -------------------------------------------------------------------------------- /Bot/3-ApiReference/status.md: -------------------------------------------------------------------------------- 1 | 2 | ## Status定义 3 | 返回结果状态标识,_code_ 是返回码,_errorType_ 是错误类型,_errorDetails_ 时候错误详情。 4 | 5 | ``` 6 | { 7 | "code":400, 8 | "errorType":"bad_request", 9 | "errorDetails":"token校验不通过" 10 | } 11 | ``` 12 | 13 | | Status Code | Error Type | Description | 14 | | :--- | :--- | :--- | 15 | | 0 | success | 成功 | 16 | | 1 | no\_result | 无结果 | 17 | | 400 | bad\_request | 不合法的输入 | 18 | | 401 | unauthorized | 权限校验失败 | 19 | | 500 | internal | 系统错误,重试可能有效 | 20 | | 501 | not\_supported | 语义 | 21 | | 503 | too\_many\_requests | 在一定时间内访问次数超限 | 22 | | 601 | service\_unreachable | 第三方服务不可用 | 23 | | 602 | service\_unknown\_format | [第三方服务返回的数据格式有误] | 24 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/出行场景/README.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 3 | 出行场景,指能为用户外出旅行、观光游览,或者车辆、行人从出发地向目的地移动的交通行为提供查询指导的一类场景。 4 | 5 | 6 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/娱乐资讯/README.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 3 | 娱乐资讯类场景,指能够为用户提供资讯查询,娱乐休闲以及资源点播的一类场景,包括新闻、音乐以及笑话等场景。 4 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/娱乐资讯/查星座.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 为用户提供星座运势以及星座匹配查询服务。资源来自星座屋 ([http:\/\/www.xzw.com\/](http://www.xzw.com/)) 。 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | constellation | 星座 | 天蝎座 | 10 | | date | 日期 | 今天\/明天 | 11 | | gender | 性别 | 男\/女 | 12 | 13 | # 3.意图 14 | 15 | \/Horoscope 16 | 17 | 查询星座运势。 18 | 19 | | **Slot Semantic Signatures** | **Example** | 20 | | --- | --- | 21 | | < constellation > | 天蝎座运势 | 22 | | < constellation > +<date> | 天蝎座今天运势 | 23 | 24 | 返回字段 25 | 26 | | **result** | **value** | **type** | 27 | | --- | --- | --- | 28 | | hint | 查询到的该星座的运势 | string | 29 | | formatType | 回值类型\(text表示该场景返回值为文字类型\) | string | 30 | 31 | 返回样例 32 | 33 | ``` 34 | "result": { 35 | "hint": "整体运势:今天建议就将感情的心思用在工作上,只要认真对待,必定有很好的收获,部分人还有晋升的机会。在爱情上用情过深,很容易会导致自己受伤害。身体上会有不适的情况,要多抽时间做做运动。爱情运势:感情颇为不顺,易受爱情所困。事业学业:头脑运作加快,懂得用智慧做事。财富运势:金钱流动性较快,一定要量入为出才好。健康运势:温度变化,注意环境温差对身体的影响。" 36 | } 37 | ``` 38 | 39 | \/Match 40 | 查询两个星座的男生\/女生的组合是否匹配(特指**男女**之间谈恋爱) 41 | 42 | | **Slot Semantic Signatures** | **Example** | 43 | | --- | --- | 44 | | < constellation >+< constellation > | 天蝎座和白羊座配么 | 45 | | \(< constellation >+<gender>\)+\(< constellation > +<gender>\) | 天蝎男和白羊女配么 | 46 | 47 | 返回字段 48 | 49 | | **result** | | **value** | **type** | 50 | | --- | --- | --- | --- | 51 | | hint | | 是否匹配的结论 | string | 52 | | data | content | 关于匹配度的具体内容 | string | 53 | | formatType | | 回值类型\(text表示该场景返回值为文字类型\) | string | 54 | 55 | 返回样例 56 | 57 | ``` 58 | "result": [ 59 | { 60 | "hint": "配对指数40分,前途不甚乐观的一对" 61 | } 62 | ] 63 | ``` 64 | 65 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/娱乐资讯/笑话.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 笑话(待升级,暂不对外提供) 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | | | | 10 | 11 | # 3.意图 12 | 13 | \/GetJoke 14 | 15 | | **Slot Semantic Signatures** | **Example** | 16 | | --- | --- | 17 | | <> | 我要听冷笑话 | 18 | 19 | 返回字段 20 | 21 | | **result** | **value** | **type** | 22 | | --- | --- | --- | 23 | | hint | 笑话的内容 | string | 24 | 25 | 返回样例 26 | 27 | ``` 28 |    "result": [ 29 | { 30 | "hint": "爸爸:你要给妹妹做个好榜样。\n儿子:可是她不听我的啊。 \n爸爸:那就说明你是个没能力的人。\n儿子:那她也不听你的话啊!", 31 | "formatType": "text" 32 | } 33 | ] 34 | ``` 35 | 36 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/娱乐资讯/音效.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 为用户提供各类音效的播放,比如老虎的咆哮声,自然音效等。 4 | 5 | # 2. 意图 6 | 7 | ### \/Play 8 | 9 | 随机返回该topic相关的5条音效。 10 | 11 | | **Slot Semantic Signatures** | **Description** | **Example** | 12 | | --- | --- | --- | 13 | | <topic> | 音效主题 | 我想听**人物**音效 | 14 | 15 | 16 | _举例:数据部分_ 17 | 18 | ``` 19 | 20 | "results": [ 21 | { 22 | "hint": "", 23 | "data": [ 24 | { 25 | "audio": "http://mp3.yinxiao.com/abcdefg/1234567/upload/女人打寒颤.mp3", 26 | "name": "女人打寒颤" 27 | }, 28 | { 29 | "audio": "http://mp3.yinxiao.com/abcdefg/1234567/upload/女人呵音.mp3", 30 | "name": "女人呵音" 31 | }, 32 | { 33 | "audio": "http://mp3.yinxiao.com/abcdefg/1234567/upload/男人打寒颤.mp3", 34 | "name": "男人打寒颤" 35 | }, 36 | { 37 | "audio": "http://mp3.yinxiao.com/abcdefg/1234567/upload/两个女人一起说话.mp3", 38 | "name": "两个女人一起说话" 39 | }, 40 | { 41 | "audio": "http://mp3.yinxiao.com/abcdefg/1234567/upload/男人吹口哨声.mp3", 42 | "name": "男人吹口哨声" 43 | } 44 | ], 45 | "formatType": "audio" 46 | } 47 | ] 48 | 49 | ``` 50 | 51 | --- 52 | 53 | ### \/Play 54 | 55 | 返回关键字中存在该name的一条音效。 56 | 57 | | **Slot Semantic Signatures** | **Description** | **Example** | 58 | | --- | --- | --- | 59 | | <name> | 音效名称关键词 | 我想听**老虎**的声音 | 60 | 61 | _举例:数据部分_ 62 | 63 | ``` 64 | 65 | "results": [ 66 | { 67 | "hint": "", 68 | "data": [ 69 | { 70 | "audio": "http://mp3.yinxiao.com/abcdefg/1234567/upload/老虎吼声.mp3", 71 | "name": "老虎吼声" 72 | } 73 | ], 74 | "formatType": "audio" 75 | } 76 | ] 77 | 78 | ``` 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/技能模板.md: -------------------------------------------------------------------------------- 1 | # 1.技能简介 2 | 帮助用户最快的了解该技能所提供的服务. 3 | 4 | xxx(技能名) , 简单介绍该技能提供的功能,及使用场景和技术提供商。 5 | 6 | # 2.技能安装指导 7 | 8 | 一个技能无法保证适用于所有产品,这里会列举出一些我们的技能接入建议,帮助用户做出决策。 9 | 10 | | **Product** | **Recommend** | **Description** | 11 | | ------------ | ------------ | ------------ | 12 | | 无屏设备 | 否 | [详情查阅](/Bot/4-SkillDocument/最佳实践.md) | 13 | | ... | ... | ... | 14 | 15 | 16 | 17 | # 3.返回槽位说明 18 | 19 | 技能平台分析过后会产生槽位信息,在此介绍清楚槽位信息,以便后续用户对槽位使用。 20 | 此处是该技能返回的槽位的集合,不区分意图 21 | 22 | | **Slot** | **Description** | **Example** |**Value** | **Type** | 23 | | ------------ | ------------ | ------------ | ------------ | ------- | 24 | | name | poi名称 | 鸟巢附近的餐厅 | 鸟巢 | String | 25 | | category | poi分类 | 鸟巢附近的餐厅 | [{"category:餐厅"}] | MapArray | 26 | 27 | 28 | 29 | # 4.返回意图说明 30 | 31 | 32 | 罗列出了该技能的意图和子意图描述信息,每一个意图所支持的槽位信息,及会确保会进到该意图的示例,可以根据给出的示例到测试接口去得到最终的返回数据。 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 |
IntentSubIntentDescriptionExampleSlotContext
SearchSearchHotspotByName查找热门地点+名称国贸的便利蜂 、国贸的手机店
SearchAroundByName查找周边的POI名称查找周边的便利蜂、附近的物美超市
82 | 83 | 84 | 85 | # 5.返回字段说明 86 | 87 | 以表格的方式罗列出返回的数据,若意图间返回的数据格式不一样,需要罗列出来。 88 | 这里列举的是该技能所有的意图返回的字段的集合, 同名字段在不同的意图中意义是一样的。 89 | 90 | | **Result** | **Description** | **Value** | **Type** | **Required** | 91 | | --- | --- | --- | --- | --- | 92 | | name | poi的名称 | 东城社区卫生服务站(小牌坊胡同) | string | Required | 93 | | tel | 电话号码 |010-85111691 | string |Optional| 94 | | type | poi地点的类型 | 医疗保健服务;综合医院;卫生院 | string |Optional| 95 | 96 | 97 | 98 | # 6.语义测试 99 | 运行语义测试前请确保: 100 | 101 | 1.拥有ros.ai 开发平台账号 102 | 103 | 2.确认该账号下要测试的技能已经打开 104 | 105 | [语意测试连接](https://passport.ros.ai/#/login) 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/README.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 3 | 生活场景,指人们在日常生活中经常使用的一类场景,涵盖百科问答、时间日期及天气查询等各方面。 4 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/亲戚关系计算.md: -------------------------------------------------------------------------------- 1 | # 1.技能简介 2 | Kinship 亲戚关系,该技能实现了用户关系计算,帮助用户计算家庭成语的称呼。如:爸爸的妈妈叫什么。 伯伯的儿子怎么称呼。 3 | 4 | # 2.技能安装指导 5 | 适用于所有设备及场景。本技能返回的信息直接播报出来即可完成交互。[详情查阅](/Bot/4-SkillDocument/最佳实践.md) 6 | 7 | # 3.返回槽位说明 8 | 9 | 无 10 | 11 | # 4.返回意图说明 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
IntentSubIntentDescriptionExampleSlotContext
AskAsk询问关系a.爸爸的妈妈怎么称呼
b.大伯的女儿叫什么
33 | 34 | # 5.返回字段说明 35 | hint:关系1的关系2叫关系3. (爸爸的妈妈叫奶奶) 36 | 37 | # 6.语义测试 38 | 运行语义测试前请确保: 39 | 40 | 1.拥有ros.ai 开发平台账号 41 | 42 | 2.确认该账号下要测试的场景已经打开 43 | 44 | [语意测试连接](https://passport.ros.ai/#/login) 45 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/单位换算.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 为用户提供单位换算,包括长度,重量,面积,体积\/容积,速度,温度。 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | unit\_num | 数量+单位 | 1平米、3摄氏度 | 10 | | unit | 单位 | 升、km\/h | 11 | 12 | # 3.意图 13 | 14 | \*\*\*由于涉及到的单位种类较多,询问逻辑和返回字段都是一样的,在此抽象成一个Convert函数 15 | 16 | \/Convert 17 | 18 | | **Slot Semantic Signatures** | **Example** | 19 | | --- | --- | 20 | | <unit\_num>+<unit> | 1.5米等于多少厘米 | 21 | | <unit> | 那毫米呢\(多轮,接上次询问\) | 22 | | < unit> + < unit> | 米等于多少纳米\(单位之间的转换\) | 23 | 24 | 返回字段 25 | 26 | | **result** | | **value** | **type** | 27 | | --- | --- | --- | --- | 28 | | hint | | xx\(源单位数量\)xx\(源单位类型\)等于xx\(目的单位数量\)xx\(目的单位类型\),例如:1米等于100毫米 | string | 29 | | data | fromAmount | 源单位数量 | string | 30 | | | fromCode | 源单位代码 | string | 31 | | | fromName | 源单位名称 | string | 32 | | | toAmount | 转换后目标单位数量 | string | 33 | | | toCode | 转换后目标单位代码 | string | 34 | | | toName | 转换后目标单位名称 | string | 35 | 36 | 返回样例 37 | 38 | ``` 39 | "result": { 40 | "hint": "2.3米等于2300000微米", 41 | "data": { 42 | "fromAmount": "2.3", 43 | "fromCode": "m", 44 | "fromName": "米", 45 | "toAmount": "2300000", 46 | "toCode": "um", 47 | "toName": "微米" 48 | } 49 | } 50 | ``` 51 | 52 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/口语对练.md: -------------------------------------------------------------------------------- 1 | # 1.服务背景 2 | 3 | 一个英文对话场景,实现口语练习 4 | 5 | # 2. 槽位 6 | 7 | | Slot\_Key | Description | Main\_Application | Example | 8 | | --- | --- | --- | --- | 9 | | query | 英文对练语句 | | what is your name | 10 | 11 | # 3.意图 12 | 13 | ## 3.1 Enter\_进入 14 | 15 | 意图关键词:[打开][英语对练|对练|英语聊天] 16 | 17 | ## 3.2 Exercise\_练习 18 | 19 | 意图关键词:任意英文句子 20 | 21 | ## 3.3 Exit\_退出 22 | 23 | 意图关键词:goodbye 24 | 25 | # 4.返回结果 26 | 27 | ## 4.1 Enter\_进入 28 | 29 | | **Field\_Name** | **Sub\_Field** | **Field\_Value** | **Field\_Example** | 30 | | --- | --- | --- | --- | 31 | | hint | | 回复语 | 好的,从现在起我们开始用英语对话,想退出时请和我说goodbye | 32 | | data | | | | 33 | | | destlang | 回复语语种 | zh | 34 | 35 | ``` 36 | "results": [ 37 | { 38 | "hint": "好的,从现在起我们开始用英语对话,想退出时请和我说goodbye", 39 | "data": { 40 | "destlang": "zh" 41 | } 42 | } 43 | ] 44 | ``` 45 | 46 | ## 4.2 Exercise\_练习 47 | 48 | | **Field\_Name** | **Sub\_Field** | **Field\_Value** | **Field\_Example** | 49 | | --- | --- | --- | --- | 50 | | hint | | 回复语 | Hi once again! I study at a roboschool and all our students have to travel to another planet. I've decided to come to Earth. | 51 | | data | | | | 52 | | | destlang | 回复语语种 | en | 53 | 54 | ``` 55 | "results": [ 56 | { 57 | "hint": "Hi once again! I study at a roboschool and all our students have to travel to another planet. I've decided to come to Earth.", 58 | "data": { 59 | "destlang": "en" 60 | } 61 | } 62 | ] 63 | ``` 64 | 65 | ## 4.3 Exit\_退出 66 | 67 | | **Field\_Name** | **Sub\_Field** | **Field\_Value** | **Field\_Example** | 68 | | --- | --- | --- | --- | 69 | | hint | | 回复语 | 好的,再见 | 70 | | data | | | | 71 | | | destlang | 回复语语种 | zh | 72 | 73 | ``` 74 | "results": [ 75 | { 76 | "hint": "好的,再见", 77 | "data": { 78 | "destlang": "zh" 79 | } 80 | } 81 | ] 82 | ``` 83 | 84 | 85 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/查天气.md: -------------------------------------------------------------------------------- 1 | # 1. 技能简介 2 | 3 | Weather技能实现了查询当天或未来5天的天气、温度、湿度、风向、空气质量等情况。 4 | 5 | # 2.技能安装指导 6 | 适用于所有设备及场景。本技能返回的信息直接播报出来即可完成交互。[详情查阅](/Bot/4-SkillDocument/最佳实践.md) 7 | 8 | # 3.返回槽位说明 9 | 10 | | **Slot\_Key** | **Description** | **Example** | **Type** | 11 | | --- | --- | --- | --- | 12 | | city | 城市 | 北京 | string 13 | | date | 日期 | 今天、明天 | string 14 | | focus | 查询的项目 | 天气、温度、湿度、风向、空气 | string 15 | | duration | 日期时间段 | 最近两天 | string 16 | 17 | # 4.返回意图说明 18 | 19 | | **Intent** | **Description** | **Example** | **Slot** | **Context** | 20 | | --- | --- | --- | --- | --- | 21 | | WeatherForADay | 查一天 | 北京今天空气质量 | date:2018-12-27; focus:空气 | oneDay 22 | | WeatherForDays | 查多天 | 上海未来三天天气 | duration: 2018-12-28/2018-12-30 | daysSelf 23 | 24 | # 5.返回字段说明 25 | 26 | | **Field\_Name** | **Sub\_Field** | **Field\_Type** | **Field\_Value** | **Field\_Example** | 27 | | --- | --- | --- | --- | --- | 28 | | hint | | 天气情况 | string | 北京明天,气温23度到30度,东南风2级转东风3级,阵雨 | 29 | | data | | | | | 30 | | | alter | 预警 | string | | 31 | | | city | 城市 | string | 北京 | 32 | | | date | 日期 | string | 2017-08-01 | 33 | | | focus | 查询关键词 | string | rain | 34 | | | humidity | 湿度 | string | 31 | 35 | | | index | 返回天气天数索引 | string | 1 | 36 | | | maxTemp | 最高温度 | string | 30 | 37 | | | minTemp | 最低温度 | string | 23 | 38 | | | pm25 | pm25值 | string | 24 | 39 | | | temperature | 温度 | string | 37 | 40 | | | weather | 天气 | string | 阵雨 | 41 | | | windDay | 白天风向 | string | 东南风 | 42 | | | windDayLevel | 白天风力 | string | 2 | 43 | | | windDir | 转向 | string | 东北风 | 44 | | | windLevel | 风力 | string | 2 | 45 | | | windNight | 夜晚风向 | string | 东风 | 46 | | | windNightLevel | 夜晚风力 | string | 3 | 47 | 48 | 49 | # 6.语义测试 50 | 运行语义测试前请确保: 51 | 52 | 1.拥有ros.ai 开发平台账号 53 | 54 | 2.确认该账号下要测试的场景已经打开 55 | 56 | [语意测试连接](https://passport.ros.ai/#/login) 57 | 58 | 用户查询的是某一天的天气,所以返回的data中是一个结构体,存放温度,风向等信息 59 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/查菜谱.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 根据用户的询问,返回对应的菜品的菜谱 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | dish\_name | 菜品的名称 | 红烧排骨 | 10 | 11 | # 3.意图 12 | 13 | \/GetCook 14 | 15 | 获取菜谱 16 | 17 | | **Slot Semantic Signatures** | **Example** | 18 | | --- | --- | 19 | | <dish\_name> | 红烧排骨怎么做 | 20 | 21 | 返回字段 22 | 23 | | **result** | **value** | **type** | 24 | | --- | --- | --- | 25 | | hint | 菜谱 | string | 26 | 27 | 返回样例 28 | 29 | ``` 30 |    "results": [ 31 | { 32 | "hint": "食材:排骨500g白萝卜半个藕半节葱姜蒜适量料酒适量老抽适量步骤:第1步排骨焯水备用,可以放点料酒去腥。第2步藕削皮切块,萝卜洗净切块。第3步热油放姜蒜炒香,小火。第4步排骨放进来翻炒。第5步倒入老抽上色,我口味重放得多了点,大家根据自己的口味来。第6步放开水没过食材,加葱段,大火煮20分钟左右。第7步后加入藕块、萝卜块,转小火慢慢熬15-20分钟。第8步有点暗,不过味道还是不错滴。哈哈哈" 33 | } 34 | ] 35 | ``` 36 | 37 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/百科问题.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 支持用户咨询通用百科问题。 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | person | 人物名称 | 周杰伦 | 10 | 11 | # 3.意图 12 | 13 | \/default 14 | 15 | | **Slot Semantic Signatures** | **Example** | 16 | | --- | --- | 17 | | <person> | 周杰伦是谁? | 18 | | | 你认识姚明么 | 19 | 20 | 返回字段 21 | 22 | | **result** | **value** | **type** | 23 | | --- | --- | --- | 24 | | hint | 百科回答的内容 | string | 25 | 26 | 返回样例 27 | 28 | ``` 29 |    "result": [ 30 | { 31 | "hint": "周杰伦,1979年1月18日出生于台湾省新北市,中国台湾流行乐男歌手、音乐人、演员、导演、编剧、监制、商人。2000年发行首张个人专辑《jay》。2001年发行的专辑《范特西》奠定其融合中西方音乐的风格。2002年举行“the one”世界巡回演唱会。2003年成为美国《时代周刊》封面人物。2004年获得世界音乐大奖中国区最畅销艺人奖。2005年凭借动作片《头文字d》获得台湾电影金马奖、香港电影金像奖最佳新人奖。2006年起连续三年获得世界音乐大奖中国区最畅销艺人奖。,," 32 | } 33 | ] 34 | ``` 35 | 36 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/翻译-英译汉.md: -------------------------------------------------------------------------------- 1 | # 1.服务背景 2 | 3 | 实时英译汉 4 | 5 | # 2.槽位 6 | 7 | | Slot\_Key | Description | Main\_Application | Example | 8 | | --- | --- | --- | --- | 9 | | englishword | 待翻译英文语句 | | hello | 10 | 11 | # 3.意图 12 | 13 | ## 3.1 Entry\_进入 14 | 15 | 意图关键词:[我要|我想|帮我|给我|]英译[汉|中] 16 | 17 | ## 3.2 EntoZhTranslate\_翻译 18 | 19 | 意图关键词:任意英文句子 20 | 21 | ## 3.3 Exit\_退出 22 | 23 | 意图关键词:goodbye 24 | 25 | # 4.返回结果 26 | 27 | ## 4.1 Entry\_进入 28 | 29 | | **Field\_Name** | **Sub\_Field** | **Field\_Value** | **Field\_Example** | 30 | | --- | --- | --- | --- | 31 | | hint | | 回复语 | 好的,从现在起主人和我说英文,我来给主人翻译成中文,想结束时请和我说goodbye | 32 | | data | | | | 33 | | | destlang | 回复语语种 | zh | 34 | | | destword | 翻译结果 | | 35 | | | srcword | 待翻译语句 | | 36 | 37 | ``` 38 | "results": [ 39 | { 40 | "hint": "好的,从现在起主人和我说英文,我来给主人翻译成中文,想结束时请和我说goodbye", 41 | "data": { 42 | "destlang": "zh", 43 | "destword": "", 44 | "srcword": "" 45 | } 46 | } 47 | ] 48 | ``` 49 | 50 | ## 4.2 EntoZhTranslate\_翻译 51 | 52 | | **Field\_Name** | **Sub\_Field** | **Field\_Value** | **Field\_Example** | 53 | | --- | --- | --- | --- | 54 | | hint | | 回复语 | 你好 | 55 | | data | | | | 56 | | | destlang | 回复语语种 | zh | 57 | | | destword | 翻译结果 | hello | 58 | | | srcword | 待翻译语句 | 你好 | 59 | 60 | ``` 61 | "results": [ 62 | { 63 | "hint": "你好", 64 | "data": { 65 | "destlang": "zh", 66 | "destword": "你好", 67 | "srcword": "hello" 68 | } 69 | } 70 | ] 71 | ``` 72 | 73 | ## 4.3 Exit\_退出 74 | 75 | | **Field\_Name** | **Sub\_Field** | **Field\_Value** | **Field\_Example** | 76 | | --- | --- | --- | --- | 77 | | hint | | 回复语 | 好的,下次再找我吧 | 78 | | data | | | | 79 | | | destlang | 回复语语种 | zh | 80 | | | destword | 翻译结果 | | 81 | | | srcword | 待翻译语句 | | 82 | 83 | ``` 84 | "results": [ 85 | { 86 | "hint": "好的,下次再找我吧", 87 | "data": { 88 | "destlang": "zh", 89 | "destword": "", 90 | "srcword": "" 91 | } 92 | } 93 | ] 94 | ``` 95 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/聊天问答.md: -------------------------------------------------------------------------------- 1 | ## Chat 2 | 3 | * [服务说明](#1-服务说明) 4 | * [请求参数](#2-意图说明) 5 | * [实例](#3-实例) 6 | * [emotion](#4-情感分析) 7 | * [source](#5-问答来源) 8 | 9 | ### 1 服务说明 10 | 11 | --- 12 | 自定义问答、闲聊 13 | 14 | ### 2 意图说明 15 | 16 | --- 17 | Chat服务语义部分如下,不区分意图。 18 | ``` 19 | "semantic": { 20 | "service": "Chat" 21 | } 22 | ``` 23 | 24 | ### 3 实例 25 | 26 | --- 27 | 28 | _Sample Request_ 29 | 30 | ``` 31 | POST http://api.ros.ai/bot/v1/query 32 | 33 | Headers: 34 | Content-Type: application/json; charset=utf-8 35 | 36 | { 37 | "agentId":"2ZmNzYyOTA5MzJjZ", 38 | "token":"f7caaf310da3dcb24bacdc7944456210", 39 | "sessionId":"1234567890", 40 | "query":"早上好" 41 | } 42 | ``` 43 | 44 | _Sample Response_ 45 | 46 | ``` 47 | { 48 | "status": { 49 | "code": 0, 50 | "errorType": "success" 51 | }, 52 | "query": "你好", 53 | "semantic": { 54 | "service": "Chat", 55 | "action": "default", 56 | "outputContext": { 57 | "service": "Chat", 58 | "context": "chat" 59 | } 60 | }, 61 | "results": [ 62 | { 63 | "hint": "你好啊,是想请我吃饭吗", 64 | "data": { 65 | "emotion": [ 66 | { 67 | "type": "text_question", 68 | "value": "normal", 69 | "score": "" 70 | }, 71 | { 72 | "type": "text_answer", 73 | "value": "normal", 74 | "score": "" 75 | } 76 | ], 77 | "source": "chat_roobo" 78 | } 79 | } 80 | ] 81 | } 82 | ``` 83 | _Chat Result->data_ 84 | 85 | | 字段名 | Definition | type | 是否是必填字段 | 86 | | :--- | :--- | :--- |:--- | 87 | | hint | 闲聊回复 | string | 必填 | 88 | | emotion | 情感分析结果,分别对问题(question)和答案(answer)做出了情感倾向识别 | string | 已废弃 | 89 | | source | 问答来源 | string | 必填 | 90 | 91 | 具体枚举值参考如下。 92 | 93 | ### 4 问答来源 94 | | source | Definition | 95 | | :--- | :--- | 96 | | chat_roobo | Roobo问答 | 97 | | chat_tuling | 图灵问答 | 98 | | chat_xiaohuangji | 小黄鸡问答 | 99 | | qa_sys | 系统自定义问答 | 100 | | qa_usr | 用户自定义问答 | 101 | | qa_dup | 重复自定义问答 | 102 | | qa_unknown | 默认自定义问答 | 103 | | qa_welcome | 欢迎语自定义问答 | 104 | 105 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/节假日查询.md: -------------------------------------------------------------------------------- 1 | 2 | # 1. 服务简介 3 | 4 | 节假日查询 5 | 6 | # 2.意图 7 | 8 | ### \/GetHolidayPlan 9 | 10 | 获取用户查询节日或者月份的放假安排 11 | 12 | | **Slot Semantic Signatures** | **Example** | 13 | | --- | --- | 14 | | <holiday> | 国庆节 | 15 | | <holiday_month> | 10月份 | 16 | 17 | 18 | _举例:数据部分_ 19 | ``` 20 | "results": [ 21 | { 22 | "hint": "10月法定假日信息:国庆节,10月1日至8日放假调休,共8天,与中秋连休。9月30日(星期六)上班。中秋节,10月1日至8日放假调休,共8天,与国庆连休。9月30日(星期六)上班。", 23 | "data": [ 24 | { 25 | "desc": "10月1日至8日放假调休,共8天,与中秋连休。9月30日(星期六)上班。", 26 | "festival": "2017-10-1", 27 | "name": "国庆节" 28 | }, 29 | { 30 | "desc": "10月1日至8日放假调休,共8天,与国庆连休。9月30日(星期六)上班。", 31 | "festival": "2017-10-4", 32 | "name": "中秋节" 33 | } 34 | ], 35 | "formatType": "text" 36 | } 37 | ] 38 | ``` 39 | 40 | 41 | # 3.槽位 42 | 43 | | **Slot\_Key** | **Description** | **Example** | 44 | | --- | --- | --- | 45 | | holiday | 要查询的节假日 | 中秋节怎么放假 | 46 | | holiday_month | 要查询的月份 | 10月份有哪些假期 | 47 | 48 | # 4.返回字段描述 49 | 50 | | **Field\_Name** | **Field\_Type** | **Field\_Value** | **Field\_Example** | 51 | | --- | --- | --- | --- | 52 | | desc | string | 假期详细描述 | 10月1日至8日放假调休,共8天,与国庆连休。9月30日(星期六)上班。 | 53 | | festival | string | 节假日日期 | 2017-10-4 | 54 | | name | string | 节假日名称 | 中秋节 | 55 | 56 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/生活场景/货币换算.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 为用户提供货币兑换情况的查询,包括汇率及货币兑换。 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | unit\_currency | 货币数量+货币类型 | 1美元、3块钱 | 10 | | currency | 货币类型 | 人民币、美元 | 11 | 12 | # 3.意图 13 | 14 | \*\*\*由于Exchange和GetExchangeRate返回字段相同,在此统一说明 15 | 16 | 返回字段 17 | 18 | | **result** | | **value** | **type** | 19 | | --- | --- | --- | --- | 20 | | hint | | xx\(源货币数量\)xx\(源货币类型\)等于xx\(目的货币数量\)xx\(目的货币类型\),例如:1美元等于6.73人民币 | string | 21 | | data | fromAmount | 源货币数量 | string | 22 | | | fromCode | 源货币代码 | string | 23 | | | fromName | 源货币名称 | string | 24 | | | toAmount | 转换后目标货币数量 | string | 25 | | | toCode | 转换后目标货币代码 | string | 26 | | | toName | 转换后目标货币名称 | string | 27 | 28 | \/Exchange 29 | 30 | | **Slot Semantic Signatures** | **Example** | 31 | | --- | --- | 32 | | <unit\_currency>+<currency> | 2美元等于多少人民币 | 33 | 34 | 返回样例 35 | 36 | ``` 37 | "result": { 38 | "hint": "2美元等于13.46人民币", 39 | "data": { 40 | "fromAmount": "2", 41 | "fromCode": "USD", 42 | "fromName": "美元", 43 | "toAmount": "13.46", 44 | "toCode": "CNY", 45 | "toName": "人民币" 46 | } 47 | } 48 | ``` 49 | 50 | \/GetExchangeRate 51 | 52 | | **Slot Semantic Signatures** | **Example** | 53 | | --- | --- | 54 | | <currency>+<currency> | 美元兑人民币汇率是多少 | 55 | 56 | 返回样例 57 | 58 | ``` 59 | "result": { 60 | "hint": "1美元等于6.73人民币", 61 | "data": { 62 | "fromAmount": "1", 63 | "fromCode": "USD", 64 | "fromName": "美元", 65 | "toAmount": "6.73", 66 | "toCode": "CNY", 67 | "toName": "人民币" 68 | } 69 | } 70 | 71 | ``` 72 | 73 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/知识教育/README.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 3 | 知识教育类场景,旨在通过更加生动有趣的交互,为用户提供个性化、智能化的自适应学习的一类场景。 4 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/README.md: -------------------------------------------------------------------------------- 1 | # 简介 2 | 3 | 系统设置类场景,旨在为用户提供更方便快捷的操纵控制ai机器人本身的语音交互服务。 4 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/休眠控制.md: -------------------------------------------------------------------------------- 1 | # 1.技能简介 2 | 3 | Sleep(休眠控制),使用户能通过语音方便地控制设备进入休眠状态。 4 | 5 | # 2.技能安装指导 6 | 7 | 无屏和有屏设备都可以安装,[详情参见](/Bot/4-SkillDocument/最佳实践.md) 8 | 9 | # 3.返回槽位说明 10 | 11 | 无 12 | 13 | # 4.返回意图说明 14 | 15 | | **Intent** | **SubIntent** | **Description** | **Example** | **Slot** | 16 | | --- | --- | --- | --- | --- | 17 | | SetSleep | SetSleep | 把设备调到休眠状态 | 休息吧 | 无 | 18 | 19 | # 5.返回字段说明 20 | 21 | 无 22 | 23 | # 6.语义测试 24 | 25 | 运行语义测试前请确保: 26 | 27 | 1.拥有ros.ai 开发平台账号 28 | 29 | 2.确认该账号下要测试的技能已经打开 30 | 31 | [语意测试链接](https://passport.ros.ai/#/login) 32 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/定时关机.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 波鲁鲁故事机的需求,告知故事机在某个时间点关机,故事机到点关机。产品@袁仁富。 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | date | 日期\(不带时间\) | 三天后 | 10 | | date\_time | 时间(必需)+日期(不必需) | 明天10点、10分钟后 | 11 | 12 | # 3.意图 13 | 14 | \/Play 15 | 16 | 设定定时关机意图,如果该台机器已经有设定好的定时关机,则替换原定时关机。 17 | 18 | | **Slot Semantic Signatures** | **Example** | 19 | | --- | --- | 20 | | <date> | 3天后关机 | 21 | | <date\_time> | 10分钟后关机、明天10点关机 | 22 | 23 | 返回字段 24 | 25 | | **result** | | **value** | **type** | 26 | | --- | --- | --- | --- | 27 | | hint | | 好的主人,我将在xxxx自动关机 | string | 28 | | data | Service | ShutDown | string | 29 | | | Action | SetShutDown | string | 30 | | | alarm\_time | 定时关机的时间,如:2017-07-31 11:04:35 | string | 31 | 32 | 返回样例 33 | 34 | ``` 35 | "result": { 36 | "hint": "好的主人,我将在2017-07-31 11:04:35自动关机", 37 | "data": { 38 | "Action": "SetShutDown", 39 | "Service": "ShutDown", 40 | "alarm_time": "2017-07-31 11:04:35", 41 | "content": "", 42 | "operation": "set", 43 | "repeat_mode": 0 44 | } 45 | } 46 | ``` 47 | 48 | \/DeleteShutDown 49 | 删除已有的定时关机 50 | 51 | | **Slot Semantic Signatures** | **Example** | 52 | | --- | --- | 53 | | | 取消关机 | 54 | 55 | 返回字段 56 | 57 | | **result** | | **value** | **type** | 58 | | --- | --- | --- | --- | 59 | | hint | | 电台名称 | string | 60 | | data | Service | ShutDown | string | 61 | | | Action | DeleteShutDown | string | 62 | | | alarm\_time || string | 63 | 64 | 返回样例 65 | 66 | ``` 67 | "result": { 68 | "hint": "已经帮你取消了定时关机", 69 | "data": { 70 | "Action": "DeleteShutDown", 71 | "Service": "ShutDown", 72 | "alarm_time": "", 73 | "content": "", 74 | "operation": "", 75 | "repeat_mode": 0 76 | } 77 | } 78 | ``` 79 | 80 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/播放控制.md: -------------------------------------------------------------------------------- 1 | # 1.技能简介 2 | 3 | PlayControl 通用的播放控制,包含通用的播放控制指令的语义解析,目前仅包含播放模式的设定。 4 | 如:单曲循环,帮我切到单曲循环 5 | 6 | # 2.技能安装指导 7 | 适用于所有设备及场景。但本技能仅返回语义,具体的响应操作需要靠接入方去实现。[详情查阅](/Bot/4-SkillDocument/最佳实践.md) 8 | 9 | # 3.返回槽位说明 10 | 11 | | **Slot** | **Description** | **Example** |**Value** | **Type** | 12 | | ------------ | ------------ | ------------ | ------------ | ------- | 13 | |play_mode|播放模式|a.单曲循环
b.帮我切到随机播放
c.设置为列表循环|a.single_repeat
b.random
c.repeat|String| 14 | 15 | # 4.返回意图说明 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
IntentSubIntentDescriptionExampleSlotContext
SetPlayMode SetPlayMode设置播报模式a.单曲循环
b.帮我切到随机播放
c.设置为列表循环
play_mode
54 | 55 | # 5.返回字段说明 56 | 该技能仅返回语义. 57 | 58 | hint:已设置为@sys.entity.play_mode模式 59 | 60 | # 6.语义测试 61 | 运行语义测试前请确保: 62 | 63 | 1.拥有ros.ai 开发平台账号 64 | 65 | 2.确认该账号下要测试的场景已经打开 66 | 67 | [语意测试连接](https://passport.ros.ai/#/login) 68 | 69 | 70 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/机器画像.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 用户画像是设备级别的信息,系统画像是应用(AppId)的信息 4 | 用户画像的设置和查询都是通过语音完成,但是对系统画像的设置是在ROSAI的页面配置,查询是通过语音 5 | 6 | # 2.槽位 7 | 8 | | **Slot\_Key** | **Description** | **Example** | 9 | | --- | --- | --- | 10 | | prop | 画像属性 | 生日、名字、电话 | 11 | | rel | 画像关系 | 爸爸、哥哥、朋友 | 12 | 13 | 14 | # 3.意图 15 | 16 | ## Search 17 | 查询画像属性 18 |
Example: 19 |
你的电话是多少? 20 |
你的好朋友的名字是什么? 21 | 22 | ### request 23 | ``` 24 | request: 25 | { 26 | "query":"你的好朋友的名字是什么", 27 | "sessionId": "xxxxxx", 28 | "agentId":"xxxxxx", 29 | "token":"xxxxxxxx" 30 | } 31 | ``` 32 | 33 | ### response 34 | ``` 35 | "results": [ 36 | { 37 | "hint": "小明", 38 | "outputSpeech": { 39 | "items": [ 40 | { 41 | "type": "PlainText", 42 | "source": "小明" 43 | } 44 | ] 45 | } 46 | } 47 | ] 48 | ``` 49 | 50 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/用户画像.md: -------------------------------------------------------------------------------- 1 | # 1. 服务简介 2 | 3 | 用户可以设置和查询自己的画像信息。 4 | 5 | # 2.槽位 6 | 7 | | **Slot\_Key** | **Description** | **Example** | 8 | | --- | --- | --- | 9 | | prop | 画像属性 | 生日、名字、电话 | 10 | | rel | 画像关系 | 爸爸、哥哥、朋友 | 11 | | told | 画像属性值,Record意图中使用 | 小明(名字)、2014年6月(生日) | 12 | 13 | 14 | # 3.意图 15 | 16 | ## Record 17 | 记录画像属性 18 |
Example: 19 |
请记住我的电话是123456789? 20 |
请记住我的好朋友的名字是小明? 21 | 22 | ### request 23 | ``` 24 | request: 25 | { 26 | "query":"请记住我的名字叫小明", 27 | "sessionId": "xxxxxx", 28 | "agentId":"xxxxxx", 29 | "token":"xxxxxxxx" 30 | } 31 | ``` 32 | ### response 33 | ``` 34 | "results": [ 35 | { 36 | "hint": "好的,我记住了", 37 | "outputSpeech": { 38 | "items": [ 39 | { 40 | "type": "PlainText", 41 | "source": "好的,我记住了" 42 | } 43 | ] 44 | } 45 | } 46 | ] 47 | ``` 48 | 49 | ## Search 50 | 查询画像属性 51 |
Example: 52 |
我的电话是多少? 53 |
我的好朋友的名字是什么? 54 | 55 | ### request 56 | ``` 57 | request: 58 | { 59 | "query":"我的好朋友的名字是什么", 60 | "sessionId": "xxxxxx", 61 | "agentId":"xxxxxx", 62 | "token":"xxxxxxxx" 63 | } 64 | ``` 65 | 66 | ### response 67 | ``` 68 | "results": [ 69 | { 70 | "hint": "小明", 71 | "outputSpeech": { 72 | "items": [ 73 | { 74 | "type": "PlainText", 75 | "source": "小明" 76 | } 77 | ] 78 | } 79 | } 80 | ] 81 | ``` 82 | -------------------------------------------------------------------------------- /Bot/4-SkillDocument/系统设置/音量控制.md: -------------------------------------------------------------------------------- 1 | # 1.技能简介 2 | 3 | VolumeControl(音量控制),是调节音量的场景,用户能通过语音方便地调节控制设备音量。 4 | 5 | # 2.技能安装指导 6 | 7 | 无屏和有屏设备都可以安装,[详情参见](/Bot/4-SkillDocument/最佳实践.md) 8 | 9 | # 3.返回槽位说明 10 | 11 | 无 12 | 13 | # 4.返回意图说明 14 | 15 | | **Intent** | **SubIntent** | **Description** | **Example** | **Slot** | 16 | | --- | --- | --- | --- | --- | 17 | | Mute | Mute | 把设备调到静音 | 调到静音 | 无 | 18 | | Unmute | Unmute | 解除静音状态 | 不要静音 | 无 | 19 | | LOW | LOW | 把声音降低一点 | 音量减一点 | 无 | 20 | | UP | UP | 控制加音量 | 音量加一点 | 无 | 21 | | MIN | MIN | 调到最小 | 音量调到最小 | 无 | 22 | | MAX | MAX | 调到最大 | 音量调到最大 | 无 | 23 | 24 | # 5.返回字段说明 25 | 26 | 无 27 | 28 | # 6.语义测试 29 | 30 | 运行语义测试前请确保: 31 | 32 | 1.拥有ros.ai 开发平台账号 33 | 34 | 2.确认该账号下要测试的技能已经打开 35 | 36 | [语意测试链接](https://passport.ros.ai/#/login) 37 | -------------------------------------------------------------------------------- /Bot/README.md: -------------------------------------------------------------------------------- 1 | 2 | * Roobo 技能开发工具 3 | * [技能开发工具简介](2-RosAiDocument/1-SkillsKit/platform-introduction.md) 4 | * 快速入门 5 | * [技能的创建与发布](2-RosAiDocument/1-SkillsKit/getting-started/creat-and-publish.md) 6 | * 重要概念 7 | * [意图](2-RosAiDocument/1-SkillsKit/important-concept/intent.md) 8 | * [模板](2-RosAiDocument/1-SkillsKit/important-concept/template.md) 9 | * [子模板](2-RosAiDocument/1-SkillsKit/important-concept/subtemplate.md) 10 | * [实体](2-RosAiDocument/1-SkillsKit/important-concept/entity.md) 11 | * [槽位](2-RosAiDocument/1-SkillsKit/important-concept/slot.md) 12 | * [开发协议](3-ApiReference/README.md) 13 | * [文本请求协议](3-ApiReference/text-request-dev-protocol-v3.md) 14 | * [事件请求协议](3-ApiReference/event-request-dev-protocol-v2.md) 15 | * [技能开发协议](3-ApiReference/skill-dev-protocol.md) 16 | * 技能接入指南 17 | * [技能接入最佳实践](4-SkillDocument/最佳实践.md) 18 | * [技能接入文档模板](4-SkillDocument/技能模板.md) 19 | * [出行场景类](4-SkillDocument/出行场景/README.md) 20 | * [通用POI搜索](4-SkillDocument/出行场景/通用POI搜索.md) 21 | * [娱乐资讯类](4-SkillDocument/出行场景/README.md) 22 | * [新闻播报](4-SkillDocument/娱乐资讯/新闻播报.md) 23 | * [音乐](4-SkillDocument/娱乐资讯/音乐.md) 24 | * [儿歌](4-SkillDocument/娱乐资讯/儿歌.md) 25 | * [故事](4-SkillDocument/娱乐资讯/故事.md) 26 | * [生活场景类](4-SkillDocument/生活场景/README.md) 27 | * [单位换算](4-SkillDocument/生活场景/单位换算.md) 28 | * [系统设置类](4-SkillDocument/系统设置/README.md) 29 | * [闹钟](4-SkillDocument/系统设置/闹钟.md) 30 | * [音量控制](4-SkillDocument/系统设置/音量控制.md) 31 | * [休眠控制](4-SkillDocument/系统设置/休眠控制.md) 32 | -------------------------------------------------------------------------------- /Bot/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [Roobo 开放平台](README.md) 4 | * Roobo 技能开发工具 5 | * [技能开发工具简介](2-RosAiDocument/1-SkillsKit/platform-introduction.md) 6 | * 快速入门 7 | * [技能的创建与发布](2-RosAiDocument/1-SkillsKit/getting-started/creat-and-publish.md) 8 | * 重要概念 9 | * [意图](2-RosAiDocument/1-SkillsKit/important-concept/intent.md) 10 | * [模板](2-RosAiDocument/1-SkillsKit/important-concept/template.md) 11 | * [子模板](2-RosAiDocument/1-SkillsKit/important-concept/subtemplate.md) 12 | * [实体](2-RosAiDocument/1-SkillsKit/important-concept/entity.md) 13 | * [槽位](2-RosAiDocument/1-SkillsKit/important-concept/slot.md) 14 | * [开发协议](3-ApiReference/README.md) 15 | * [文本请求协议](3-ApiReference/text-request-dev-protocol-v3.md) 16 | * [事件请求协议](3-ApiReference/event-request-dev-protocol-v2.md) 17 | * [技能开发协议](3-ApiReference/skill-dev-protocol.md) 18 | * [status](3-ApiReference/status.md) 19 | * [emotion](3-ApiReference/emotion.md) 20 | * 技能接入指南 21 | * [技能接入最佳实践](4-SkillDocument/最佳实践.md) 22 | * [技能接入文档模板](4-SkillDocument/技能模板.md) 23 | * [出行场景类](4-SkillDocument/出行场景/README.md) 24 | * [通用POI搜索](4-SkillDocument/出行场景/通用POI搜索.md) 25 | * [娱乐资讯类](4-SkillDocument/出行场景/README.md) 26 | * [新闻播报](4-SkillDocument/娱乐资讯/新闻播报.md) 27 | * [音乐](4-SkillDocument/娱乐资讯/音乐.md) 28 | * [儿歌](4-SkillDocument/娱乐资讯/儿歌.md) 29 | * [故事](4-SkillDocument/娱乐资讯/故事.md) 30 | * [生活场景类](4-SkillDocument/生活场景/README.md) 31 | * [单位换算](4-SkillDocument/生活场景/单位换算.md) 32 | * [系统设置类](4-SkillDocument/系统设置/README.md) 33 | * [闹钟](4-SkillDocument/系统设置/闹钟.md) 34 | * [音量控制](4-SkillDocument/系统设置/音量控制.md) 35 | * [休眠控制](4-SkillDocument/系统设置/休眠控制.md) 36 | -------------------------------------------------------------------------------- /OS/APIReference/README.md: -------------------------------------------------------------------------------- 1 | ##### SceneSDK API reference 2 | 3 | [Overview](http://htmlpreview.github.io/?https://github.com/roobo/docs/blob/master/OS/APIReference/SceneSDK/index.html) 4 | 5 | 6 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/account/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.account 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.account

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/asrinterface/bean/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.asrinterface.bean 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.asrinterface.bean

14 |
15 |

16 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/base/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.base 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.base

14 |
15 |

接口

16 | 20 |

21 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/ai/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.ai 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.ai

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/authorizor/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.authorizor 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.authorizor

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/communication/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.communication 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.communication

14 |
15 |

接口

16 | 21 |

22 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/power/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.power 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.power

14 |
15 |

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/scene/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.scene 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.scene

14 |
15 |

16 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/sceneManager/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.sceneManager 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.sceneManager

14 |
15 |

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/sceneManager/wrapper/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.sceneManager.wrapper 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.sceneManager.wrapper

14 |
15 |

接口

16 | 19 |

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/core/service/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.core.service 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.core.service

14 |
15 |

接口

16 | 19 |

20 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/error/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.error 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.error

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/focusinterface/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.focusinterface 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.focusinterface

14 |
15 |

接口

16 | 20 |

21 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/location/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.location 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.location

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/location/service/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.location.service 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.location.service

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/logcat/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.logcat 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.logcat

14 |
15 |

接口

16 | 19 |

20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/nlu/interfaces/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.nlu.interfaces 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.nlu.interfaces

14 |
15 |

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/rml/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.rml 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.rml

14 |
15 |

16 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/rml/rules/operator/time/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.rml.rules.operator.time 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.rml.rules.operator.time

14 |
15 |

16 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/service/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.service 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.service

14 |
15 |

16 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/state/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.state 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.state

14 |
15 |

接口

16 | 19 |

20 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/toolkit/decision/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.decision 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.decision

14 |
15 |

16 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/com/roobo/widget/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.widget 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.widget

14 |
15 |

16 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/package-list: -------------------------------------------------------------------------------- 1 | com.roobo.account 2 | com.roobo.asrinterface 3 | com.roobo.asrinterface.bean 4 | com.roobo.base 5 | com.roobo.configure 6 | com.roobo.core.ai 7 | com.roobo.core.authorizor 8 | com.roobo.core.communication 9 | com.roobo.core.power 10 | com.roobo.core.scene 11 | com.roobo.core.sceneManager 12 | com.roobo.core.sceneManager.wrapper 13 | com.roobo.core.service 14 | com.roobo.error 15 | com.roobo.focusinterface 16 | com.roobo.location 17 | com.roobo.location.service 18 | com.roobo.logcat 19 | com.roobo.nlu.interfaces 20 | com.roobo.rml 21 | com.roobo.rml.rules 22 | com.roobo.rml.rules.operator 23 | com.roobo.rml.rules.operator.time 24 | com.roobo.service 25 | com.roobo.state 26 | com.roobo.toolkit.decision 27 | com.roobo.utils 28 | com.roobo.widget 29 | -------------------------------------------------------------------------------- /OS/APIReference/SceneSDK/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /OS/README.md: -------------------------------------------------------------------------------- 1 | # ROOBO OS 2 | 3 | roobo OS是一套专为智能硬件设计的中间件。roobo OS运行在Android之上,在Android已有的GUI框架之外提供了面向应用的VUI框架。roobo OS致力于缩短智能硬件的开发时间,同时能够更灵活的整合各种功能以及算法,提供用户需要的智能硬件。 4 | roobo OS连接到roobo智能网关,语义平台和内容服务聚合平台,提供了全局上下文管理,场景调度等VUI交互必须的基础服务,打通了从用户语音到云端处理,再到本地展示的整体流程。在这套框架之上,开发者可以只关注自身的业务逻辑,快速实现功能,提高了开发效率。 5 | roobo OS提供了一系列针对语音处理的基础服务,支持免唤醒指令,更换唤醒词,动态设置离线词等,也支持根据GUI状态动态设置离线语义,方便用户实现更好的交互效果。 6 | 7 | 8 | -------------------------------------------------------------------------------- /OS/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [介绍](README.md) 4 | * [快速上手](./quickstart/quickStart.md) 5 | * [平台申请](./quickstart/quickStartApply.md) 6 | * [部署平台服务](./quickstart/quickStartDeploy.md) 7 | * [创建场景](./quickstart/quickStartCreateScene.md) 8 | * 基础概念 9 | * [系统模块](./basis/module.md) 10 | * [场景](./basis/scene.md) 11 | * [服务](./basis/service.md) 12 | * [AI事件和AI命令](./basis/AIComm.md) 13 | * [用户交互流程](./basis/full_interaction_process.md) 14 | * 系统服务 15 | * [通讯服务](./services/communicator.md) 16 | * [设备验证服务](./services/authorizor.md) 17 | * [场景服务](./services/sceneservice.md) 18 | * [焦点管理](./services/focus.md) 19 | * [电源管理](./services/power_manager.md) 20 | * [服务管理器](./services/service_manager.md) 21 | * 规则系统 22 | * [RML](./services/rules/rml.md) 23 | * [事件处理器](./services/rules/processor.md) 24 | * [事件处理器规则](./services/rules/processor_rules.md) 25 | * [语音识别服务](./services/asr/asr.md) 26 | * [离线指令词](./services/asr/asr_offline.md) 27 | * [slot](./services/asr/asr_slot.md) 28 | * [离线NLU](./services/ENLU/enlu.md) 29 | * [离线模板语法](./services/ENLU/grammar.md) 30 | * [使用ENLU](./services/ENLU/helper.md) 31 | * [语音合成服务](./tts/tts.md) 32 | * [配置中心](./services/configure/configure.md) 33 | * [配置中心规则](./services/configure/configure_rules.md) 34 | * [SDCARD上的配置文件](./services/configure/sdcard_config.md) 35 | -------------------------------------------------------------------------------- /OS/assets/action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/action.png -------------------------------------------------------------------------------- /OS/assets/command_send_to_scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/command_send_to_scene.png -------------------------------------------------------------------------------- /OS/assets/full_user_interaction.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/full_user_interaction.jpg -------------------------------------------------------------------------------- /OS/assets/jbridge_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/jbridge_arch.png -------------------------------------------------------------------------------- /OS/assets/power_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/power_config.png -------------------------------------------------------------------------------- /OS/assets/quickStartDataSplit_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDataSplit_1.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_1.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_2.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_3.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_4.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_5.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_6.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_7.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_8.png -------------------------------------------------------------------------------- /OS/assets/quickStartDeploy_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quickStartDeploy_9.png -------------------------------------------------------------------------------- /OS/assets/quick_start_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_1.png -------------------------------------------------------------------------------- /OS/assets/quick_start_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_2.png -------------------------------------------------------------------------------- /OS/assets/quick_start_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_3.png -------------------------------------------------------------------------------- /OS/assets/quick_start_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_4.png -------------------------------------------------------------------------------- /OS/assets/quick_start_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_5.png -------------------------------------------------------------------------------- /OS/assets/quick_start_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_6.png -------------------------------------------------------------------------------- /OS/assets/quick_start_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_7.png -------------------------------------------------------------------------------- /OS/assets/quick_start_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/quick_start_8.png -------------------------------------------------------------------------------- /OS/assets/scene_lifecycle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/scene_lifecycle.jpg -------------------------------------------------------------------------------- /OS/assets/top_scene_change.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/top_scene_change.png -------------------------------------------------------------------------------- /OS/assets/user_interact_process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/user_interact_process.png -------------------------------------------------------------------------------- /OS/assets/user_interaction.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/assets/user_interaction.vsdx -------------------------------------------------------------------------------- /OS/basis/AIComm.md: -------------------------------------------------------------------------------- 1 | ### roobo OS通讯方式 2 | 3 | com.roobo.core作为通讯系统的中心,负责接收AI事件,并向对应的[模块](module.md)发送AI命令。 4 | 5 | #### AI事件 6 | 一个AI事件(AIEvent)是一个key,value的组合。同时,也可以指定事件的"粘性"。一个AI事件的结构如下所示: 7 | ```java 8 | public class Event { 9 | public String key; 10 | public Serializable value; 11 | public boolean sticky; 12 | } 13 | ``` 14 | 粘性的事件会一直保存在Core当中,作为一个状态出现。非粘性的AI事件只会参与一次处理,无论有没有匹配到规则,都会被丢弃。 15 | 16 | ##### 发送多个AI事件 17 | [模块](module.md)可以一次向com.roobo.core发送多个AI事件。无论是一个或者多个,每次发送AI事件会触发一次事件处理。此时所有在com.roobo.core中留存的状态与本次发送的一个或者多个AI事件结合起来,被事件处理器处理。 18 | ##### 自定义AI事件 19 | 作为模块,可以向com.roobo.core发送任何AI事件,只要遵守AI事件的规则即可:Key是一个字符串,value是一个Serializable。 20 | 21 | 对自定义的AI事件的处理可以在[pre_process.xml](processor_rules.md)和[post_process.xml](processor_rules.md)中定义。 22 | 23 | #### AI命令 24 | 事件处理器处理事件之后,会产生一个或多个AI命令。每个命令包含四个部分: 25 | ```java 26 | public class AICommand { 27 | public String target; 28 | public String action; 29 | public Bundle params; 30 | public Serializable suggestion; 31 | } 32 | ``` 33 | 其中params和suggestion的具体数据类型需要参考AI相关场景定义或者自己指定。 34 | 对于场景,params和action一起定义了用户意图。如果roobo同时提供了对应的云服务,那么可以在suggestion中找到该云服务返回的数据。 35 | 对于其他类型的模块,例如服务或者普通模块,suggestion中可能不包含任何数据。 36 | -------------------------------------------------------------------------------- /OS/basis/full_interaction_process.md: -------------------------------------------------------------------------------- 1 | ## 用户交互过程 2 | 用户交互从语音输入开始,经过语音识别转换成文字,封装成事件(Event)经过前处理器进行过滤,随后同时进入本地语义理解(eNLU)和云端语义理解(Cloud AI)并得到最终结果。语义处理的结果返回经过后处理器进行再次加工,变成一系列AI命令,被发送到对应的场景或者服务模块。 3 | 4 | ![](../assets/user_interact_process.png) 5 | 6 | * 有关前处理器和后处理器相关内容,请参考:[事件处理器](processor.md) 7 | 和[规则系统](processor_rules.md) 8 | * 有关Cloud AI,请参考:[Cloud AI](cloud_ai.md) 9 | * 有关eNLU,请参考:[eNLU](enlu.md) 10 | * 有关场景配置,请参考:[场景服务](scene.md) 11 | -------------------------------------------------------------------------------- /OS/basis/service.md: -------------------------------------------------------------------------------- 1 | ## Concepts 2 | service(服务)不同于 scene(场景),service 没有生命周期和相关的调度,它往往只是提供一项资源服务,或者只是一个设备的UserDriver(用户层驱动)。 3 | 4 | 例如机器人为了提供 “摸一下就有反馈” 的功能,就需要有 TouchSerivce 服务模块,当用户有触摸动作时,该服务模块应该承载从底层上来的按键反馈事件(Input event),也要向上层提供 onKeyEvent 事件回调。 5 | ## Tutorial 6 | #### 服务声明 7 | 声明一个服务需要在 AndroidManifest.xml 中写入如下 meta-data 段: 8 | ```xml 9 | 12 | 15 | 18 | ``` 19 | 这个模块名(ROOBO_MODULE_NAME)叫 TOUCH,模块类型(ROOBO_MODULE_TYPE)是 service。 20 | #### 服务初始化 21 | 服务声明后需要在 Application.onCreate() 中尽量早的地方调用如下方法: 22 | ```java 23 | class Communicator { 24 | ... 25 | public static void initialize(Context context, IBinder binder); 26 | ... 27 | } 28 | ``` 29 | 其中 context 建议传入 ApplicationContext,binder 就是该服务提供的 Binder 接口。当初始化时,系统将传过来的 Binder 接口保存在系统的 ServiceManager(服务管理器)中。 30 | 31 | 例如 Touch 服务提供 ITouch 的 Binder 接口,首先提供 aidl 文件: 32 | ```java 33 | interface ITouch { 34 | void onTouchEvent(int eventCode, int action); 35 | } 36 | ``` 37 | Touch 服务模块中实现接口: 38 | ```java 39 | private static ITuch.Stub sBinder = new ITouch.Stub() { 40 | @Override 41 | public void onTouchEvent(int eventCode, int action) throws RemoteException { 42 | // todo server 端具体实现 43 | } 44 | }; 45 | ``` 46 | Application.onCreate() 中初始化操作: 47 | ```java 48 | public class App extends Application { 49 | @Override 50 | public void onCreate() { 51 | Communicator.initialize(this, sBinder.asBinder()); 52 | } 53 | } 54 | ``` 55 | #### 服务的使用 56 | 服务接口以 Map 的形式保存在 ServiceManager 中,我们可以通过 RooboServiceManager 接口类拿到指定服务接口来使用,例如 Touch 服务提供 ITouch 的 Binder 接口,如下代码段所示: 57 | ```java 58 | private static ITouch getService(Context context) { 59 | if (context == null) { 60 | return null; 61 | } 62 | IBinder iBinder = RooboServiceManager.getService(context, MODULE_NAME); // 这里 MODULE_NAME 改成对应服务模块的模块名 63 | if (iBinder != null && iBinder.isBinderAlive()) { 64 | return ITouch.Stub.asInterface(iBinder); 65 | } 66 | return null; 67 | } 68 | ``` 69 | 一般来说,为了方便其他场景或者模块更方便的使用自己开发的服务,建议在Binder接口之上提供interface封装类供其他开发者使用。interface封装类从系统服务管理其中获取负责获取相应的binder,维护回调,完成必要的接口简化和参数封装。 70 | -------------------------------------------------------------------------------- /OS/cloud_ai.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/cloud_ai.md -------------------------------------------------------------------------------- /OS/quickstart/quickStart.md: -------------------------------------------------------------------------------- 1 | # 快速上手 2 | 3 | 本章将向开发者介绍怎样快速的使用该平台,并在该平台上进行场景的开发。 -------------------------------------------------------------------------------- /OS/quickstart/quickStartApply.md: -------------------------------------------------------------------------------- 1 | # 平台申请 2 | 3 | 平台的申请需要提供 4 | 1. 目标设备 5 | 为达到较为理想的效果,需要根据具体的设备进行调试 6 | 2. 唤醒词 7 | 3. 提供申请ros.ai的邮箱信息 8 | 用于申请ros.ai账号 -------------------------------------------------------------------------------- /OS/quickstart/quickStartDeploy.md: -------------------------------------------------------------------------------- 1 | ## 示例工程是什么 2 | 示例工程是我们准备好的一套方便开发者快速集成的开发自身智能设备的一套软件开发包. 3 | 4 | 示例工程是 **一个开发包** 5 | 示例工程是 **一个Android studio project** 6 | 示例工程 **可以语音交互整套流程** 7 | 8 | 后续会成为roobo开发包. 9 | 10 | ## 获取roobo开发包 11 | 12 | 点击**[roobo开发包下载](https://pan.baidu.com/s/1eSst5mU) **获取开发包. 13 | 解压后会得到类似下图所示工程.不同时期下的版本可能后面的版本数字会有变化. 14 | 15 | ![](../assets/quickStartDeploy_1.png) 16 | 17 | 这是一个 android studio project . 用 android studio open 的方式,不要使用 import . 18 | 19 | ![](../assets/quickStartDeploy_2.png) 20 | 21 | ![](../assets/quickStartDeploy_3.png) 22 | 23 | ## 项目资源简介 24 | 25 | **interfaces/SceneSDK**   用于开发场景的sdk 26 | **resource/apk/**   roobo提供服务的核心apk 27 | **resource/data/sdcard/**   需要push到设备sdcard上的资源 28 | **resource/scenesdk/**   用于场景开发的sdk内容,interfaces/SceneSDK中的内容来源于此. 包含 jar 于 so 文件,如果你使用其他的ide ,可以自行拷贝进行开发. 29 | **scenes/**   示例项目中内置的两个场景,后续会详细介绍这些场景的作用.新增的场景推荐都放在此目录下. 30 | **scripts/**   存放项目所需的脚本 31 | 32 | 33 | ## 部署工程到设备 34 | 35 | #### 推荐更换签名 36 | **roobotest.jks** 是开发包中内置的前面文件,将该签名文件更换为你的智能设备的系统签名文件. 37 | **scripts/one_key_deploy.py** 打开该文件修改如下代码段为更新的签名文件信息. 38 | 39 | ![](../assets/quickStartDeploy_4.png) 40 | 41 | 更换签名不是必须,我们提供的默认签名依旧能帮你完成工程的部署. 42 | 43 | #### 执行脚本部署 44 | 1.确保已经 [安装python](https://www.python.org/)   45 | 2.配置apk签名,打开**scripts/one_key_deploy.py** ,在下图所示处配置你的apk签名. 46 | 47 | ![](../assets/quickStartDeploy_5.png) 48 | 49 | 3.确保设备已经正确接入到pc机.adb shell 可用 50 | 4.执行脚本,python scripts/one_key_deploy.py 51 | 有如下信息输出,代表部署成功. 52 | 53 | ![](../assets/quickStartDeploy_6.png) 54 | 55 | #### 必要的检查 56 | 1.成功部署后,工程根部目录下产生build_outputs目录.确保build_outputs 目录下的所有apk 已经安装成功 57 | 2.sn文件已经push到设备的sdcard 中. 58 | 3.设备的日期,时间为当前正确时间 59 | 4.音量已经打开 60 | 5.设备已经正确联网 61 | 62 | #### 运行程序 63 | 如果你的设备有屏幕,有桌面那就找到名为 RooboShowMsg ,的app启动. 64 | 没有屏幕可以执行: adb shell am start -n com.roobo.showmsg/.MainActivity 65 | 启动程序. 66 | 67 | ![](../assets/quickStartDeploy_7.png) 68 | 69 | 说出唤醒词 ,默认唤醒词为 70 | **布丁布丁** 71 | 看到如图下图所示,并听到问候语,代表系统依旧唤醒可以开始输入语音指令. 72 | 73 | ![](../assets/quickStartDeploy_8.png) 74 | 75 | 语音输入 76 | **今天天气** 77 | 78 | ![](../assets/quickStartDeploy_9.png) 79 | 80 | 至此示例程序已经部署运行成功. 现在所有的语音指令都会转到这个 "SHOW_MSG" 场景. 当然所有的数据都转发到这个场景处理肯定不是你所需要的.快速上手-自定义场景 , 快速上手-拆分场景数据. 这两章中会详细介绍. 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /OS/services/ENLU/enlu.md: -------------------------------------------------------------------------------- 1 | ### 离线NLU 2 | NLU(Natual Language Understanding,自然语言理解)是语音交互系统中非常重要的处理单元。NLU接收用户的query(文本形式),通过对语义进行分析,抽取出槽位,返回用户意图。 3 | 4 | roobo提供AI平台供开发者使用。除此之外,也提供基于模板匹配的离线NLU,帮助开发者快速实现定制化需求。 5 | #### 上下文 6 | 一个场景可以看作是一个有向图,图中的每个节点表示一个状态,每条边表示从一个状态切换到另外一个状态的路径,对于语音操作,这条边是用户意图(intent)。 7 | 8 | 一个用户意图可以从一个状态切换到另外一个状态。用户意图起点对应的状态称作这个意图的上文,用户意图终点对应的状态称作这个意图的下文。一个状态既可以作为某个意图的上文,同时也可以作为另外一个意图的下文。 9 | 10 | 不但语音操作可以引起上下文的切换,GUI操作也可以产生同样的效果。一个应用程序如果希望GUI和VUI协同工作,需要有意识地设置上下文。 11 | 设置上下文的方式请参考:[场景服务](../sceneservice.md) 12 | #### 模板 13 | 一个简单的理解用户语义的方式是预置一系列的句式,形如: 14 | ```xml 15 | 16 | 17 | 18 | [帮我|我要|][打开|开启|查看]路况 19 | 20 | 21 | ``` 22 | 这个模板指定了一系列用户的可能query。包括:帮我打开路况,开启路况等。 23 | 如果用户query与这条模板匹配,就返回意图:open_road_condition。 24 | #### 槽位 25 | 上面介绍的模板只是覆盖特定的句式,很多时候,我们希望将句子中的某些文字抽取出来,转化为槽位返回。例如: 26 | ```xml 27 | 28 | 29 | 30 | [切换|切换到|切到][$bottom_tab_name:tabname][页面|界面|页|] 31 | 32 | 33 | $tabname 34 | 35 | 36 | ``` 37 | 在上面的句式中,我们引入了实体 bottom_tab_name,表示页面标签名称。该实体的规约词可能是这个标签的序号或者id。如果用户query与该条模板匹配,对应的标签的id就会被作为参数返回,参数名是:tabname。 38 | 39 | 通过这种方式,制定一系列模板和槽位,可以让用户应用程序具备一定的语音交互能力。 40 | #### 离线NLU与在线NLU的关系与选择 41 | 按照语义理解的方式,可以将引擎分为基于规则与基于统计两种。 42 | 43 | 基于规则的语义理解预先设定规则,将用户的query与规则进行比较,如果符合预定义的模式,就可以获得对应的语义和槽位。这种方式的优势是匹配精准,实施快速,无需训练语料,通过配置模板就可以完成语义理解的功能。缺点是几乎没有泛化能力,需要预先猜测用户可能的说法,如果猜测出错,即便是有很小的出入,也无法完成功能。 44 | 45 | 基于统计的语义理解则是将用户query通过预处理,转换成向量或者向量序列,随后通过一个预先训练好的模型对这个向量或向量序列进行分类和标注,获取意图及槽位。这种方法的优势是泛化能力非常强,通过一段时间的训练,可以非常宽泛的覆盖用户的说法。缺点是根据业务的不同,需要大量的训练语料,同时因为统计本身的局限性,总会存在badcase。 46 | 47 | 合理的将两种方式的语义理解结合起来,可以实现比较好的工程效果。一般来说,离线NLU执行快速,配置简单,非常适合用于GUI操作以及一些简单的列表选择。例如,可以通过配置离线NLU实现对页面的切换和分类标签选择,对多条导航搜索结果进行前后翻页,指定选择某一条等。 48 | 49 | 对于一些可以抽象为模板但是需要在云端动态调整的场景,需要在云端使用基于规则的方式进行处理。对于一些需要很强泛化能力的场景,以及一些对数据有要求的场景,只能使用在线NLU。例如点播音乐,新闻查询,知识库问答等。 50 | 51 | -------------------------------------------------------------------------------- /OS/services/ENLU/enlu_context.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/services/ENLU/enlu_context.md -------------------------------------------------------------------------------- /OS/services/ENLU/enlu_grammar.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/services/ENLU/enlu_grammar.md -------------------------------------------------------------------------------- /OS/services/ENLU/enlu_load_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/OS/services/ENLU/enlu_load_template.md -------------------------------------------------------------------------------- /OS/services/asr/asr.md: -------------------------------------------------------------------------------- 1 | # 语音识别 2 | 3 | 平台提供的语音识别服务 4 | * 离线识别 5 | * 唤醒词定制 6 | * 免唤醒离线指令词 7 | * 离线指令词(需要唤醒) 8 | * 设置slot 9 | * 在线识别 -------------------------------------------------------------------------------- /OS/services/asr/asr_offline_grammar.md: -------------------------------------------------------------------------------- 1 | # 离线指令词语法规则 2 | 3 | 离线指令词语法文件遵循BNF(Backus-Naur Form)语法规则 4 | 5 | ## 示例 6 | 7 | ```bnf 8 | 9 | #BNF+EMV2.1; 10 | !grammar demo; 11 | !start ; 12 | !start ; 13 | !start ; 14 | 15 | !slot ; 16 | 17 | : 纯净水|[百事]柠檬汁|啤酒|白酒; 18 | 19 | : [请|麻烦]给我一杯; 20 | 21 | : 你这里有吗; 22 | 23 | : |; 24 | 25 | : 结账; 26 | 27 | : 打电话给; 28 | 29 | ``` 30 | 31 | ## 语法说明 32 | 33 | |语法|说明| 34 | |:--|:--| 35 | |;|定义结束符,所有定义结束后都需要添加该符号| 36 | |!|自留字开始声明。可用的自留字:grammar,start,slot等| 37 | ||规则。定义了一系列记号及其相互的关系,且可以包含其它子规则。通过指定规则的唯一名称,使其它的规则可以通过该名称引用该规则| 38 | |:sentences|规则内容| 39 | 40 | ## 文件组成部分 41 | 42 | * 文件自标识头 43 | 44 | #BNF+EMV2.1; 45 | 46 | * 语法名称 47 | 48 | !grammar grammar_name; 49 | 50 | 注意:需要保证grammar_name是唯一的 51 | 52 | * 初始规则声明 53 | 54 | !start() <规则名称>; 55 | 56 | * 槽声明 槽是一种特殊的规则,它描述了一系列记号的并列关系,且不包含任何子规则 57 | 58 | !slot ; 59 | 60 | * 规则内容 61 | 62 | : sentences; 63 | 64 | sentences由句子组成,多个句子可以通过|分隔 65 | * 句子中[]表示可选项,[]中可以使用|表示或的关系 66 | * 句子中()表示必选项,()中可以使用|表示或的关系 67 | * 句子中可以通过<>引用别的规则或者槽 68 | 69 | ### 70 | 71 | -------------------------------------------------------------------------------- /OS/services/asr/asr_slot.md: -------------------------------------------------------------------------------- 1 | # slot 2 | 3 | slot(槽)是一种特殊的规则,它描述了一系列记号的并列关系,且不包含任何子规则。 4 | 5 | 离线指令词支持slot的概念,可以动态的设置slot,动态的修改离线识别的内容。 6 | 7 | ## 典型场景 8 | 打电话场景 9 | 为了达到较为精确匹配,需要将联系人加入到离线识别中,而联系人并不是固定的,所以当联系人改变时,需要动态的修改联系人信息,这时就可以用到slot 10 | 11 | ## 使用方法 12 | 13 | 1. 声明slot 14 | 15 | 如果是在bnf中声明slot,请参照[语法规则中的示例](./asr_offline_grammar.md##示例) 16 | 17 | 如果是动态加载带slot的grammar,请参照[离线命令词中的示例](./asr_offline.md####示例) 18 | 19 | 2. 更新slot内容 20 | 21 | 通过AsrManager接口可以对slot进行更新 22 | ```java 23 | 24 | /** 25 | * 用来动态加载slot集合,将bnf中定义的slot填充为具体内容, 覆盖原来slot的内容 26 | * 27 | * @param grammarName  grammar 名字 28 | * @param slotwordMap  具体slot的内容, key为slot的名字,value为slot的内容 29 | * @param listener  设置结果回调 30 | */ 31 | public void setSlotWordList( 32 | final String grammarName, 33 | final String moduleName, 34 | final Map>> slotwordMap, 35 | final LoadGrammarListener listener); 36 | 37 | /** 38 | * 动态移除slot的内容 39 | * 40 | * @param grammarName  grammar 名字 41 | * @param moduleID  默认为场景名 42 | * @param context  默认为场景名 43 | * @param listener  移除结果回调 44 | */ 45 | public void removeSlotWordList( 46 | final String grammarName, 47 | final String moduleID, 48 | final String context, 49 | final LoadGrammarListener listener); 50 | 51 | 52 | Map>> slotWordMap = new HashMap<>(); 53 | final List contactSlotContent = new ArrayList<>(); 54 | contactSlotContent.add("张三"); 55 | contactSlotContent.add("李四"); 56 | slotWordMap.put("module_name", new HashMap>() {{put("contact", contactSlotContent);}}); 57 | AsrManager.getInstance().setSlotWordList("grammar_name", "module_name", slotWordMap, new LoadGrammarListener() { 58 | @Override 59 | public void onResult(boolean success, String grammarName) { 60 | 61 | } 62 | }); 63 | 64 | ``` -------------------------------------------------------------------------------- /OS/services/authorizor.md: -------------------------------------------------------------------------------- 1 | ## 设备验证服务 2 | 所有使用roobo OS的设备必须拿到访问服务的鉴权信息才能够使用线上服务。线上服务包括语音识别,语义理解,图像识别,云端推送。 3 | 4 | ### Authorizor 5 | Authorizor提供接口用于读取当前获取的鉴权信息。可用的接口如下: 6 | ```java 7 | public static boolean renewToken(Context context); 8 | 9 | public static String getToken(Context context); 10 | 11 | public static String getClientId(Context context); 12 | 13 | public static String getAppId(Context context); 14 | 15 | public static String getProduction(Context context); 16 | 17 | public static String getDeviceId(Context context); 18 | ``` 19 | 由于鉴权信息会自动更新,所以建议每次访问云端接口的时候获取最新的鉴权信息,确保鉴权成功。 20 | -------------------------------------------------------------------------------- /OS/services/configure/configure.md: -------------------------------------------------------------------------------- 1 | ### 配置中心 2 | 3 | 配置中心是一个预定义的为场景和服务提供数据存储的content provider。配置中心维护一个数据库,针对每个特定的uri维护一张数据表。一般情况下, 数据中心包含如下预置的数据表: 4 | * 全局配置表。全局配置表的Uri为:/GlobalConfig,也可以通过ConfigureInterface访问。全局配置表可以用来存储配置信息,全局配置表存在于内存当中。重新启动后数据全部丢失。 5 | * 开发者配置表。开发者配置表的Uri为:/DeveloperConfig,也可以通过ConfigureInterface访问。开发者配置表可以用来存储开发者修改的配置,开发者配置表存在于本地数据库当中。重新启动后不会丢失数据。 6 | * 全局状态表。全局状态表的Uri为:/GlobalStatus,也可以通过ConfigureInterface访问。全局状态表可以用于存储场景或者服务的状态。全局状态表存在于内存当中。重新启动后数据全部丢失。 7 | 8 | #### 访问配置中心 9 | 对配置中心的访问可以通过ConfigureInterface来完成。详情请参考:[配置中心规则](configure_rules.md) 10 | 11 | #### 自定义配置中心 12 | 开发者可以通过编写roobo_os_database.xml来增加自定义数据表。一般情况下,请不要试图覆盖已有的数据表,否则可能会使系统服务无法正常运行。详情请参考:[配置中心规则](configure_rules.md) 13 | -------------------------------------------------------------------------------- /OS/services/configure/sdcard_config.md: -------------------------------------------------------------------------------- 1 | ## 在SDCARD上增加规则 2 | 3 | ### 增加规则 4 | 5 | 规则文件位于frameworks/Configure工程的res文件夹下。除非重新编译整个工程,该位置的配置文件不能被修改。 6 | 7 | 但是我们可以通过在sdcard上放置同名文件,实现在开发期间增加新的内容到已有的规则当中。 8 | 9 | sdcard配置文件的路径是:**ros/configure/** 10 | 11 | 目前已经支持的配置文件包括: 12 | * pre_process.xml 13 | * post_process.xml 14 | * focus_array.xml 15 | * product_config.xml 16 | * production_service.xml 17 | * production_scene_attr.xml 18 | 19 | 上述配置文件均为用户可定义的配置文件。原则上不建议覆盖系统内置的配置文件。系统内置的配置文件以roobo开头。 20 | 21 | ### 通过增加规则实现规则覆盖 22 | 23 | 对于上述配置文件中的某些,因为规则解析的逻辑被设计为对同名配置项,只识别第一个,忽略随后的同名配置项。所以我们可以通过增加同名规则实现规则覆盖。 24 | 25 | *同名规则实现覆盖效果并不针对所有配置文件都生效* 26 | 27 | 目前能够支持同名覆盖的配置文件有: 28 | 29 | * pre_process.xml 30 | * post_process.xml 31 | * focus_array.xml 32 | * product_config.xml -------------------------------------------------------------------------------- /OS/services/rules/processor.md: -------------------------------------------------------------------------------- 1 | ### 事件处理器 2 | 3 | 事件处理器是语义处理过程的一部分。包括前处理器(Pre Processor)和后处理器(Post Processor)。语音识别结果通过首先发送到前处理器,如果前处理器没有吸收,则发送到云端进行语义分析。此后发送到后处理器再次处理。随后转化为AI指令发送到各个场景和模块。请参考[用户交互过程](full_interaction_process.md) 4 | 5 | #### 前处理器 6 | 语音识别结果首先会进入到前处理器。因为不需要经过语义云,所以前处理器获取数据几乎不消耗时间。非常适合做一些本地事件的处理。例如触摸机器人的身体或者四肢,电源适配器被拔出之后的相应等等。也可以做一些简单的本地逻辑。前处理器对AI事件的处理是通过规则来确定的。典型的前处理器规则片段代码如下: 7 | ```xml 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ``` 20 | 21 | 这段规则表示如果遇到识别结果是“所有功能”四个字,就启动MainMenu。这样就相当于简单的语义处理。 22 | 23 | 如果规则的output节点是空,就表示什么都不输出。效果类似把事件屏蔽掉了。例子如下: 24 | ```xml 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | ``` 33 | > #### absorb和continue 34 | >如果需要在前处理器匹配成功之后不吸收事件,仍然发送到语义云,需要在rule节点加上absorb="false"。 35 | 如果需要在某条规则匹配成功之后仍然匹配其他的规则,需要在rule节点上加上continue="true" 36 | 默认情况下,absorb="true", continue="false" 37 | 38 | #### 后处理器 39 | 语音识别结果经过语义云转化为语义,随后进入后处理器。后处理器可以实现场景转发或者场景拒识等功能。场景转发的代码片段如下: 40 | ```xml 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | ``` 55 | 上面的代码表示,如果有场景名称为Chat的语义指令,就将其转发给Persona。 56 | 57 | 场景拒识的典型代码片段如下: 58 | ```xml 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | ``` 67 | 上面的代码表示,仅仅在没有场景的时候才响应画像的对话请求。 -------------------------------------------------------------------------------- /OS/services/rules/processor_rules.md: -------------------------------------------------------------------------------- 1 | ### 事件处理器规则 2 | 3 | 事件处理器的规则写在pre_process.xml和post_process.xml里面。分别对应前处理器和后处理器_。 4 | 事件处理器规则的根节点是rules。 5 | 每条规则的tag都是rule。规则包括两个子节点:condition和output。 6 | 7 | #### rule 8 | rule节点标识一条规则。可选的属性有: 9 | * id:标识这个节点的id。 10 | * absorb:只针对前处理器有效。表示这个规则执行完成后是否要送入云端处理器进行处理。默认是ture。表示如果匹配到了前处理器的某条规则,就不会再送到云端。默认为true。 11 | * continue: 表示如果匹配到了该规则,不会马上转到下一个处理器,而且继续处理当前处理器的剩余规则。默认值是false。 12 | 13 | #### condition 14 | 15 | 请参考[RML](rml.md) 16 | 17 | #### output 18 | 19 | output节点表示一条规则的输出项。对于每一条规则,输入项是若干K-V对,输出项则是一个AICommand的列表。每个output子节点都表示一个AICommand。例子如下: 20 | 21 | ``` 22 | 23 | 24 | 25 | 26 | 27 | ``` 28 | 29 | 这个command的target是SYSTEM,action是asr.status,params里面只包含一个KV对,key是"status",value是当前asr的状态,从输入的aievent当中取出。 30 | 31 | 如果某个规则的output和另外一条规则的output完全相同,可以使用类似下面的引用: 32 | 33 | ``` 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | ``` 42 | 43 | 这条规则的output引用了当前xml文件中的一个id是voice\_wakeup的output项。 44 | 45 | 也可以用下面的方法引用输入的params: 46 | 47 | ``` 48 | 49 | 50 | 51 | 52 | 53 | 54 | ``` 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /OS/services/service_manager.md: -------------------------------------------------------------------------------- 1 | ## 服务管理器 2 | #### 服务、binder和服务管理器 3 | roobo OS支持三种类型的模块,提供binder供外部应用调用的模块成为服务。实现场景生命周期的模块成为场景,另外一种称为普通模块。 4 | 5 | 一个服务需要对外包括接口让其他应用程序使用其能力,这个接口以binder的形式提供。同时,为了让其它应用能够搜索到这个服务的接口,需要存在一个存放所有服务binder的中心,我们称之为服务管理器,每个服务向服务管理器注册自己的binder,索引的名称就是服务的模块名称。 6 | 7 | 例如,一个对外提供位置查询的服务,声明自己的名称为“Location”,并且向服务管理器注册自己的binder,则其他应用程序可以通过这个名称搜索到位置服务对外提供的binder,并调用接口。 8 | #### 注册binder 9 | 注册binder的动作是在Communicator初始化的时候完成的。详见[通讯服务](communicator.md) 10 | #### 搜索服务 11 | 服务管理器提供如下接口: 12 | ```java 13 | public static IBinder getService(Context context, final String name) 14 | ``` 15 | 其中,context是Android Context,name是服务名称。如果能够搜索到对应的服务,则返回IBinder,需要根据所要获取的服务binder类型做对应的转换。 16 | 17 | #### interface 18 | 从上面可知,我们从ServiceManager获取到的服务,都是以Ibinder的形式存在,为了能够使用服务,还需要包含对应的aidl,对IBinder进行转换。 19 | 20 | 一般情况下,如果一个服务模块对外提供服务,需要对应的实现interface库。一个interface库包含aidl的声明,完成了从IBinder到具体接口的映射,也完成包括诸如binder失效后重新获取服务,服务因为某些原因被杀死后重新注册回调等任务。 21 | 22 | 有了interface的存在,服务使用起来更加简便。 常见的系统服务,包括Communicator,SceneManager等,都有对应的interface可供使用。 -------------------------------------------------------------------------------- /OS/theme/personaplayer.md: -------------------------------------------------------------------------------- 1 | #PersonaPlayer 2 | 3 | Persona除了接收AI指令外,也向场景提供相应的接口,使场景可以直接向Persona请求特定的服务。 4 | 5 | 目前提供的服务有两类: 6 | * 说话(playTTS) 7 | * 执行特定Action(playAction) 8 | 9 | ###API 10 | PersonaPlayer对外提供的都是静态接口。 11 | 12 | ```java 13 | /** 14 | * 说一段话 15 | * @param context 16 | * @param text 要说的字符串 17 | */ 18 | public static void playTTS(Context context, String text); 19 | 20 | /** 21 | * 说一段话,并设置状态监听 22 | * @param context 23 | * @param text 要说的字符串 24 | * @param listener 状态监听器 25 | */ 26 | public static void playTTS(Context context, String text, OnPlayerStateChangeListener listener); 27 | 28 | /** 29 | * 执行特定的Action 30 | * @param context 31 | * @param actionId Action规则中指定的action_id 32 | * @param params Action附带的参数 33 | * @param suggestion Action附带的参数 34 | * @param listener 状态监听器 35 | */ 36 | public static void playAction(Context context, String actionId, Bundle params, Serializable suggestion, OnPlayerStateChangeListener listener) 37 | 38 | public interface OnPlayerStateChangeListener { 39 | /** 40 | * tts开始或者Action开始执行 41 | */ 42 | void onActionStarted(); 43 | 44 | /** 45 | * tts结束或者Action执行完毕 46 | */ 47 | void onActionFinished(); 48 | } 49 | ``` 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /OS/theme/sceneswitch.md: -------------------------------------------------------------------------------- 1 | # Scene Switch 2 | 3 | roobo OS系统提供了场景切换的通知服务,通过这个服务,可以定制自己的场景切换动画或者实现相关需求。 4 | 5 | ###实现示例 6 | * 获取ISceneSwitchService 7 | * 设置场景切换回调ISceneSwitcher.Stub,场景切换有两个回调: 8 | * startSceneSwitch(), 场景开始切换,详见注释 9 | * stopSceneSwitch(),场景切换结束,详见注释 10 | 11 | 注:示例中并没有做Binder相关的容错处理,请自行实现。 12 | 13 | ```java 14 | private ISceneSwitchService mISceneSwitchService; 15 | 16 | private void bindSceneSwitchService() { 17 | IBinder binder = RooboServiceManager.getService(mContext, "ROOBO_SCENE_SWITCH_SERVICE"); 18 | if (binder != null && binder.isBinderAlive()) { 19 | mISceneSwitchService = ISceneSwitchService.Stub.asInterface(binder); 20 | } 21 | 22 | if (mISceneSwitchService != null) { 23 | try { 24 | mISceneSwitchService.setSwitcher(new ISceneSwitcher.Stub() { 25 | /** 26 | * 场景切换开始 27 | * @param fromPkg 当前场景包名 28 | * @param toPkg 要启动的场景包名 29 | * @throws RemoteException 30 | */ 31 | @Override 32 | public void startSceneSwitch(String fromPkg, String toPkg) throws RemoteException { 33 | 34 | } 35 | 36 | /** 37 | * 场景切换结束 38 | * @param toPkg 已经启动的场景包名 39 | * @throws RemoteException 40 | */ 41 | @Override 42 | public void stopSceneSwitch(String toPkg) throws RemoteException { 43 | 44 | } 45 | }); 46 | } catch (RemoteException e) { 47 | e.printStackTrace(); 48 | } 49 | } 50 | } 51 | ``` 52 | -------------------------------------------------------------------------------- /OS/theme/themesystem.md: -------------------------------------------------------------------------------- 1 | # 主题系统 2 | 3 | 当我们决定赋予机器人人格,就需要从各个维度协调的表达一个机器人的人格。例如UI,动作,灯阵以及声音。我们称所有这些可能的机器人表达的元素组合成为一套主题。不同的主题,各种元素的表达可能是完全不同的。 4 | 5 | 为了能够方便主题的开发和使用,我们约定了一系列的标准动作,例如: 6 | * 播放TTS 7 | * 表示否定 8 | * 唤醒表达 9 | * 休眠表达 10 | * 其他标准情绪表达 11 | 12 | 这些动作是由机器人性格模块Persona传递给各个模块的。 13 | 14 | ## Persona 15 | 在设计一个机器人主题表达的时候,我们经常会遇到下面的情况: 16 | * 当屏幕上显示机器人的脸的时候,机器人说话时可能需要脸部的动画配合 17 | * 当屏幕上显示的是其他的场景的时候,机器人说话时只要播放TTS,而且更加简短 18 | 19 | 这些需求说明在不同的情况下,例如当前运行的不同的场景以及每个场景对资源的占用情况,机器人的情绪表达会产生比较大的区别。我们抽象出两种典型的情形:Face和MiniRobot。当屏幕上显示Face的时候(通常是Launcher正在运行),我们需要让Face来处理标准请求,当屏幕上显示其他场景的时候,我们将标准话请求转移给MiniRobot来处理。 20 | 21 | 负责转发这些机器人请求的模块是Persona。 22 | -------------------------------------------------------------------------------- /OS/third_os_suggest.md: -------------------------------------------------------------------------------- 1 | ### /third/os/suggest 2 | 3 | * [概述](#1-概述) 4 | * [URLs](#2-URLs) 5 | * [请求参数](#3-请求参数) 6 | * [回复参数](#4-回复参数) 7 | * [实例](#5-实例) 8 | 9 | ### 1 概述 10 | 11 | --- 12 | 13 | 引导建议。 14 | 15 | ### 2 URLs 16 | 17 | --- 18 | 19 | | Method | Definition | 20 | | :--- | :--- | 21 | | POST /third/os/suggest | 接收返回均使用JSON表示 | 22 | 23 | 24 | ### 3 请求参数 25 | 26 | --- 27 | 28 | | Name | Type | Description | Required | 29 | | :--- | :--- | :--- | :--- | 30 | | agentId | String | 应用唯一凭证 | Required | 31 | | token | String | 访问凭证 | Required | 32 | | clientId | String | 设备id | Required | 33 | | chances | []Chance | 时机数组 | Required | 34 | 35 | ### 4 回复参数 36 | 37 | --- 38 | 39 | | Name | Type | Description | Required | 40 | | :--- | :--- | :--- | :--- | 41 | | status | Status | 状态码 | Required | 42 | | semantic | []Semantic | 引导语义 | Required | 43 | | result | []Result | 引导过程 | Required | 44 | 45 | ### 5 实例 46 | 47 | --- 48 | 49 | _Sample Request_ 50 | 51 | ``` 52 | POST http://ip:port/third/suggestion 53 | 54 | Headers: 55 | Content-Type: application/json; charset=utf-8 56 | 57 | { 58 | "agentId":"2ZmNzYyOTA5MzJjZ", 59 | "token":"f7caaf310da3dcb24bacdc7944456210", 60 | "clientId":"sn:123456789", 61 | "chances": [ 62 | { 63 | "name": "awake_and_notalk_in_5s" # 时机名称 64 | } 65 | ] 66 | } 67 | ``` 68 | 69 | _Sample Response_ 70 | 71 | ``` 72 | { 73 | "status": { 74 | "code": 0, 75 | "errorType": "success" 76 | }, 77 | "semantic": { 78 | "service": "guide2__music", 79 | "action": "Play", 80 | "outputContext": { 81 | "service": "guide2__music", 82 | "context": "yes_or_no", 83 | "parameters": { #结构自定义 84 | "id": "73323sxe3" 85 | } 86 | } 87 | }, 88 | "result": { 89 | "hint": "周杰伦发布了新歌《告白气球》,要不要听听?", 90 | "data": { 91 | "type": "RUN_ONCE" 92 | } 93 | } 94 | } 95 | ``` 96 | 97 | 98 | 99 | ``` 100 | 说明: 101 | 1. 引导场景名规范:`guide2__$变量`,`guide2__`为固定前缀。 102 | 2. type是一个枚举类型,有两个取值,分别是RUN_ONCE(一次运行),RUN_INCTX(上下文)。 103 | ``` 104 | 105 | -------------------------------------------------------------------------------- /OS/tts/tts.md: -------------------------------------------------------------------------------- 1 | # 语音合成 2 | 3 | ## 提供的功能 4 | 5 | * tts合成并播放,提供tts播放状态回调 6 | * 停止正在播放的tts 7 | * 获取当前是否在播放tts 8 | 9 | ## 示例 10 | 11 | ```java 12 | 13 | //播放 14 | int sessionId = TtsService.tts(cobtext, "播放语音", new TtsListener() { 15 | @Override 16 | public void onSpeakBegin() throws RemoteException { 17 | super.onSpeakBegin(); 18 | //tts播放开始 19 | } 20 | 21 | @Override 22 | public void onCompleted() throws RemoteException { 23 | super.onCompleted(); 24 | //tts播放结束 25 | } 26 | 27 | @Override 28 | public void onSpeakStopped() throws RemoteException { 29 | super.onSpeakStopped(); 30 | //tts异常终止 31 | } 32 | 33 | @Override 34 | public void onSpeakFailed() throws RemoteException { 35 | super.onSpeakFailed(); 36 | //tts失败 37 | } 38 | }); 39 | 40 | if (sessionId < 0) { 41 | //请求失败 42 | } 43 | 44 | //停止特定session id对应的tts 45 | TtsService.stopTts(context, sessionId); 46 | 47 | //停止所有tts 48 | TtsService.stopTts(context); 49 | 50 | //是否正在播放 51 | TtsService.isSpeaking(context); 52 | 53 | ``` 54 | -------------------------------------------------------------------------------- /RAT-SDK/RATSDKDemo.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/RAT-SDK/RATSDKDemo.rar -------------------------------------------------------------------------------- /RAT-SDK/assets/offlineRes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/RAT-SDK/assets/offlineRes.png -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/toolkit/base/auth/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.base.auth 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.base.auth

14 |
15 |

接口

16 | 19 |

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/toolkit/base/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.base 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.base

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/toolkit/base/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.base 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 |
27 |

程序包 com.roobo.toolkit.base

28 |
29 |
30 |
    31 |
  • 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 45 | 46 |
    类概要 
    说明
    RError 42 |
    标准错误
    43 |
    47 |
  • 48 |
49 |
50 | 51 | 52 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/toolkit/tts/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.tts 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.tts

14 |
15 |

接口

16 | 19 |

20 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/voice/iat/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.voice.iat 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.voice.iat

14 |
15 |

接口

16 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/voice/iat/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.voice.iat 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 |
27 |

程序包 com.roobo.voice.iat

28 |
29 |
30 |
    31 |
  • 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
    接口概要 
    接口说明
    RecognizeListener 42 |
    识别结果回调
    43 |
    RVADListener 48 |
    静音检测回调接口,主要用于输入的声音中是否有需要进行识别的数据,并通过接口回调给使用者
    49 |
    VolumeChangeListener 
    57 |
  • 58 |
59 |
60 | 61 | 62 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/com/roobo/voice/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.voice 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.voice

14 |
15 |

16 | 23 |

枚举

24 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 概览列表 8 | 9 | 10 | 11 | 12 | 13 | 14 | 24 |

 

25 | 26 | 27 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/overview-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 概览 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
程序包 
程序包说明
com.roobo.toolkit.base 
com.roobo.toolkit.base.auth 
com.roobo.toolkit.tts 
com.roobo.voice 
com.roobo.voice.iat 
56 |
57 | 58 | 59 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/package-list: -------------------------------------------------------------------------------- 1 | com.roobo.toolkit.base 2 | com.roobo.toolkit.base.auth 3 | com.roobo.toolkit.tts 4 | com.roobo.voice 5 | com.roobo.voice.iat 6 | -------------------------------------------------------------------------------- /RAT-SDK/javadoc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Roobo 开发者社区文档 2 | 3 | Roobo开发者社区文档,旨在帮助开发者更好的使用社区提供的各种能力。 4 | 5 | 以下是文档整体结构。 6 | 7 | ### API REFERENCE 8 | 9 | * [Roobo 技能协议文档](ApiReference/skills) 10 | 11 | ### 开发Roobo技能 12 | 13 | * [开始创建第一个技能:订咖啡](RosAIDocument) 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /SmartSoundBox/assets/led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/SmartSoundBox/assets/led.png -------------------------------------------------------------------------------- /StoryMachine/quick_start.md: -------------------------------------------------------------------------------- 1 | ## 1 集成准备 2 | 3 | ### 1.1 [StoryMachineDemo下载](http://pan.baidu.com/s/1eROboWE) 4 | ### 1.2 resource内容介绍:(StoryMachineDemo的resource文件夹) 5 | - lib: 场景开发的jar及Jni 6 | - data:规则配置文件和sn 7 | - PlatformService*.apk PlatformService Apk 8 | - deploy.py 部署脚本 9 | 10 | ## 2 product 配置 11 | ### 2.1 到ROS.AI 服务器申请新的Product 12 | ### 2.2 修改product name 13 | 修改resource/data/sdcard/ros/configure/production_config.xml 中的 "device.production" 的value 14 | ### 2.3 修改sn 15 | 修改resource/data/sdcard/sn 中的数据 16 | 17 | ## 3 场景开发 18 | ### 3.1 场景开发请参考 Roobo OS [开发指南](https://github.com/roobo/docs/blob/master/OS/SUMMARY.md) 19 | 20 | ## 4 部署 21 | 22 | ### 4.1 生成output 23 | ```java 24 | ./gradlew clean output 25 | ```` 26 | 27 | ### 4.2 到output 文件夹中执行部署脚本 28 | ```java 29 | python deploy.py debug/release old/new 30 | ```` 31 | 32 | ## 5 验证是否成功 33 | - 1.启动platformService.apk 34 | - 2.对着手机说"罗赛" 35 | - 3.手机能够回答你"在","我在" 36 | - 4.接着问"今天天气怎么样" 37 | - 5.如果手机能正常回答你的问题就证明PlatformService运行正常 38 | 39 | ## 6 注意事项 40 | - 1.当部署在手机或者第三方平台上时候,需要注意权限 -------------------------------------------------------------------------------- /VUI-SDK/1.0/VUISDKDemo.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/VUI-SDK/1.0/VUISDKDemo.zip -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/VUI-SDK/1.0/javaDoc.zip -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes 7 | 8 | 9 | 10 | 11 | 12 |

All Classes

13 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/com/roobo/vui/api/asr/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api.asr 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api.asr

13 |
14 |

Interfaces

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/com/roobo/vui/api/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api

13 |
14 |

Interfaces

15 | 20 |

Classes

21 | 26 |

Enums

27 | 31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/com/roobo/vui/api/tts/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api.tts 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api.tts

13 |
14 |

Interfaces

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/com/roobo/vui/common/recognizer/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common.recognizer 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common.recognizer

13 |
14 |

Classes

15 | 18 |

Enums

19 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Overview List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 22 |

 

23 | 24 | 25 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/package-list: -------------------------------------------------------------------------------- 1 | com.roobo.vui.api 2 | com.roobo.vui.api.asr 3 | com.roobo.vui.api.tts 4 | com.roobo.vui.common.recognizer 5 | -------------------------------------------------------------------------------- /VUI-SDK/1.0/javaDoc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/media/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.media 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.media

13 |
14 |

Classes

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/api/asr/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api.asr 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api.asr

13 |
14 |

Interfaces

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/api/audiosource/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api.audiosource 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api.audiosource

13 |
14 |

Interfaces

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/api/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api

13 |
14 |

Interfaces

15 | 21 |

Classes

22 | 27 |

Enums

28 | 31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/api/tts/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.api.tts 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.api.tts

13 |
14 |

Interfaces

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/business/auth/entity/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.business.auth.entity 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.business.auth.entity

13 |
14 |

Classes

15 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/business/auth/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.business.auth 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.business.auth

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/business/controller/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.business.controller 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.business.controller

13 |
14 |

Classes

15 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/business/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.business 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.business

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 22 |

Enums

23 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/business/policy/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.business.policy 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.business.policy

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/business/tts/nuance/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.business.tts.nuance 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.business.tts.nuance

13 |
14 |

Classes

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/common/audiosource/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common.audiosource 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common.audiosource

13 |
14 |

Classes

15 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/common/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common

13 |
14 |

Classes

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/common/pipe/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common.pipe 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common.pipe

13 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/common/recognizer/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common.recognizer 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common.recognizer

13 |
14 |

Classes

15 | 18 |

Enums

19 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/common/task/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common.task 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common.task

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/common/vocon/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.common.vocon 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.common.vocon

13 |
14 |

Classes

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui

13 |
14 |

Classes

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/vui/upload/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.vui.upload 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.vui.upload

13 |
14 |

Interfaces

15 | 19 |

Classes

20 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/cache/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.cache 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.cache

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/exception/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.exception 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.exception

13 |
14 |

Exceptions

15 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/callback/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http.callback 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http.callback

13 |
14 |

Interfaces

15 | 19 |

Classes

20 | 26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/client/entity/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http.client.entity 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http.client.entity

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/client/multipart/content/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http.client.multipart.content 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http.client.multipart.content

13 |
14 |

Interfaces

15 | 19 |

Classes

20 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/client/multipart/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http.client.multipart 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http.client.multipart

13 |
14 |

Classes

15 | 21 |

Enums

22 | 25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/client/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http.client 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http.client

13 |
14 |

Classes

15 | 20 |

Enums

21 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/client/util/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http.client.util 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http.client.util

13 |
14 |

Classes

15 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/http/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.http 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.http

13 |
14 |

Classes

15 | 23 |

Enums

24 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils

13 |
14 |

Classes

15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/task/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.task 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.task

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 26 |

Enums

27 | 30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/com/roobo/xutils/util/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | com.roobo.xutils.util 7 | 8 | 9 | 10 | 11 | 12 |

com.roobo.xutils.util

13 |
14 |

Interfaces

15 | 18 |

Classes

19 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Overview List 7 | 8 | 9 | 10 | 11 | 12 | 13 | 23 |

 

24 | 25 | 26 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/package-list: -------------------------------------------------------------------------------- 1 | com.roobo.vui.api 2 | com.roobo.vui.api.asr 3 | com.roobo.vui.api.tts 4 | com.roobo.vui.common.recognizer 5 | com.roobo.vui.common.vocon 6 | -------------------------------------------------------------------------------- /VUI-SDK/2.0/javaDoc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /VoiceService-SDK/assets/workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/VoiceService-SDK/assets/workflow.png -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/com/roobo/ai/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.ai 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.ai

14 |
15 |

接口

16 | 21 |

22 | 26 |
27 | 28 | 29 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/com/roobo/toolkit/login/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.login 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.login

14 |
15 |

接口

16 | 20 |

21 | 25 |

枚举

26 | 29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/com/roobo/toolkit/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit

14 |
15 |

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/com/roobo/toolkit/recognizer/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.recognizer 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.recognizer

14 |
15 |

接口

16 | 22 |

23 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/com/roobo/toolkit/tts/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.roobo.toolkit.tts 8 | 9 | 10 | 11 | 12 | 13 |

com.roobo.toolkit.tts

14 |
15 |

接口

16 | 19 |

20 | 23 |
24 | 25 | 26 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 概览列表 8 | 9 | 10 | 11 | 12 | 13 | 14 | 24 |

 

25 | 26 | 27 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/package-list: -------------------------------------------------------------------------------- 1 | com.roobo.ai 2 | com.roobo.toolkit 3 | com.roobo.toolkit.login 4 | com.roobo.toolkit.recognizer 5 | com.roobo.toolkit.tts 6 | -------------------------------------------------------------------------------- /VoiceService-SDK/javadoc/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /智能手表/README.md: -------------------------------------------------------------------------------- 1 | ### Roobo智能手表解决方案 2 | roobo 智能手表解决方案,是专为智能手表开发而集成一套开发工程包,集合了 语音听写,语义分析,智能场景管理等服务。时间,天气,音乐等我们为场景。ros.ai 平台提供的开发者自定义场景的能力,通过语音听写与语义分析能力,能快速是被出用户真实需求,通过可定制化场景,可以给用户很好的体验。 3 | 本开发包已经集成这一系列的服务,几需简单几步即可开发出属于自己的智能手表,如: 4 | 5 | * 给爸爸打电话 6 | * 今天冷不冷 7 | * 一起玩成语接龙吧 8 | 9 | 从方便开发者角度思考,一些日常闲聊,生活百科,新闻等都可以ros.ai平台商店启用。集体更多ros.ai的内容可以点这里。 10 | 11 | ### 智能手表快速上手 12 | * [获取sn号](quickStartSN.md) 13 | * [部署示例工程](quickStartDeploy.md) 14 | * [自定义场景](quickStartCreateScene.md) 15 | * [拆分场景数据](quickStartDataSplit.md) 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /智能手表/assets/quickStartDeploy_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/智能手表/assets/quickStartDeploy_1.png -------------------------------------------------------------------------------- /智能手表/assets/quickStartDeploy_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/智能手表/assets/quickStartDeploy_2.png -------------------------------------------------------------------------------- /智能手表/assets/quickStartDeploy_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/智能手表/assets/quickStartDeploy_3.png -------------------------------------------------------------------------------- /智能手表/assets/quickStartDeploy_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/智能手表/assets/quickStartDeploy_4.png -------------------------------------------------------------------------------- /智能手表/assets/quickStartDeploy_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roobo/docs/d8ed74b7d016cee6de10a81015e11a0c7c057b81/智能手表/assets/quickStartDeploy_5.png -------------------------------------------------------------------------------- /智能手表/quickStartDeploy.md: -------------------------------------------------------------------------------- 1 | ## 示例工程是什么 2 | 示例工程是我们准备好的一套方便开发者快速集成的开发自身智能设备的一套软件开发包. 3 | 4 | 示例工程是 **一个开发包** 5 | 示例工程是 **一个Android studio project** 6 | 示例工程 **可以语音交互整套流程** 7 | 8 | 后续会成为roobo开发包. 9 | 10 | ## 获取roobo开发包 11 | 12 | **[点击 roobo开发包下载](https://pan.baidu.com/s/1bXCcTS)** 13 | 14 | 解压后会得到类似下图所示工程.不同时期下的版本可能后面的版本数字会有变化. 15 | 16 | ![](/智能手表/assets/quickStartDeploy_1.png) 17 | 18 | 若您希望的是快速看到效果,可以直接转到 19 | **执行脚本部署** 20 | 21 | 获取到的开发包是一个 android studio project . 用 android studio open 的方式, 22 | 切记不要使用 import . 23 | ![](/智能手表/assets/quickStartDeploy_2.png) 24 | ![](/智能手表/assets/quickStartDeploy_3.png) 25 | 26 | ## 项目资源简介 27 | 28 | **interfaces/SceneSDK** 29 |   用于开发场景的sdk 30 | 31 | **resource/apks/** 32 |   roobo提供服务的核心apk: 33 |   PlatformService-release-roobo_dot-baochenhe-24-1.1.1918-online.apk 34 |  另外的apk 属于教学的场景apk,开发包中包含源码。 35 | 36 | **resource/data/sdcard/**   需要push到设备sdcard上的资源, 37 | 38 | **resource/scenesdk/**   用于场景开发的sdk内容,interfaces/SceneSDK中的内容来源于此. 包含 jar 于 so 文件,如果你使用其他的ide ,可以自行拷贝进行开发. 39 | 40 | **scenes/**   示例项目中内置的两个场景,后续会详细介绍这些场景的作用.新增的场景推荐都放在此目录下. 41 | 42 | **scripts/**   存放项目所需的脚本 43 | 44 | **deploy.sh 与 deploy.bat**   分别为linux 与 windows 系统的部署脚本。 45 | 46 | 47 | ## 部署工程到设备 48 | 49 | #### 执行脚本部署 50 | 1.确保设备已经正确接入到pc机.adb shell 可用 51 | 52 | 2.根据自己的系统选择不同的 deploy 脚本。  53 | * linux : sh deploy.sh 54 | * windows: 双击deploy.bat 55 | * 脚本所做的工作是:将resource/data/sdcard/ 目录下的资源 push 到设备的sdcard.然后安装resource/apks/目录下的apk,最后重启设备。 56 | 57 | #### 必要的检查 58 | 1.成功部署后,确保resource/apks/ 目录下的所有apk 已经安装成功 59 | 60 | 2.resource/scenesdk/ 目录下的文件已经push到设备的sdcard 中. 61 | 62 | 3.设备的日期,时间为当前正确时间 63 | 64 | 4.音量已经打开 65 | 66 | 5.设备已经正确联网 67 | 68 | 6.Android6.0 以上的设备需要检查PlatformService(roobo核心服务),麦克风,存储,启动app等权限是否开启。 69 | 70 | #### 运行程序 71 | 如果你的设备有屏幕,有桌面那就找到名为 RooboDemo ,的app启动. 72 | 启动程序. 73 | ![](/智能手表/assets/quickStartDeploy_4.png) 74 | 75 | 语音输入 76 | **今天天气** 77 | 78 | ![](/智能手表/assets/quickStartDeploy_5.png) 79 | 80 | 至此示例程序已经部署运行成功. 现在所有的语音指令都会转到这个 "SHOW_MSG" 场景. 当然所有的数据都转发到这个场景处理肯定不是你所需要的.快速上手-自定义场景 , 快速上手-拆分场景数据. 这两章中会详细介绍. 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /智能手表/quickStartSN.md: -------------------------------------------------------------------------------- 1 | ## 什么是SN号 2 | 3 | sn号是设备的唯一识别码.如同android 设备的imei 一个sn号就代表一个设备,是一个与roobo服务沟通必不可少的数据. 4 | 5 | ## 如何获取sn 6 | 7 | 目前sn号的获取方式为发送如下内容: 8 | 9 | 我司是:xxxx 10 | 11 | 开发产品:xxxx 12 | 13 | 后台应用名称:xxxx 14 | 15 | Token:xxxx 16 | 17 | Agentid:xxxx 18 | 19 | 需要sn xxxx个。 20 | 21 | 发送至: dev-support@roobo.com 22 | 23 | 上述的一些资料你可能不是完全清楚,邮件回复也需要时间,但是不需要担心,获取sn号是关键的一步,在快速接入指南中我们的roobo OS开发包中已经内置一份.可以保证你的机器人先运作起来,待后续申请成功后再替换即可. 24 | sn号的替换后续在**获取roobo OS 智能手表开发包**中会有介绍. 25 | 26 | -------------------------------------------------------------------------------- /账户与应用/README.md: -------------------------------------------------------------------------------- 1 | ### 账户管理 2 | 3 | 注册用户可以建立子账号,可以给子账号分配应用的服务角色。 4 | 5 | ### 应用管理 6 | 7 | 通过创建应用来使用平台提供的服务。你可以添加多个应用,为每个应用分配相应的权限。通过为应用分配的Accesskey和Token来访问平台提供接口。 8 | 9 | 一个应用由AppId ,AccesskeyId,Token,名字等基本信息组成。 10 | 11 | #### AppId 12 | 13 | 类型:字符串 14 | 15 | 功能:标识应用。 16 | 17 | #### AccesskeyId 18 | 19 | 类型:字符串 20 | 21 | 功能:访问平台开放接口。 22 | 23 | #### Token 24 | 25 | 类型:字符串 26 | 27 | 功能:访问平台开放接口,Token具有有效期。可以通过刷新Token接口更新Token。 28 | 29 | ### 应用管理 30 | 31 | 通过创建应用来使用平台提供的服务。你可以添加多个应用,为每个应用分配相应的权限。通过为应用分配的Accesskey和Token来访问平台提供接口。 32 | 33 | 一个应用由AppId ,AccesskeyId,Token,名字等基本信息组成。 34 | 35 | #### AppId 36 | 37 | 类型:字符串 38 | 39 | 功能:标识应用。 40 | 41 | #### AccesskeyId 42 | 43 | 类型:字符串 44 | 45 | 功能:访问平台开放接口。 46 | 47 | #### Token 48 | 49 | 类型:字符串 50 | 51 | 功能:访问平台开放接口,Token具有有效期。可以通过刷新Token接口更新Token。 52 | --------------------------------------------------------------------------------