百度语音识别客户端开发手册



Similar documents
./

毛主席的猪

Microsoft Word - HERBRECIPES《中國藥膳》.doc

循经指压疗法

附件1.FIT)



新・解きながら学ぶJava

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

Java

拉卡拉云POS终端收单支付应用组件调用接口说明

建模与图形思考

《大话设计模式》第一章

untitled

(\244j\257d\276\307\274\351_ C.indd_70%.pdf)

第 一 章 : 從 中 共 解 放 軍 投 奔 藏 軍 棄 家 從 軍 我 原 名 姜 華 亭, 藏 名 羅 桑 扎 西, 家 在 中 國 山 東 省 萊 陽 縣 九 區 孟 格 莊 村, 父 親 叫 姜 昆, 母 親 叫 李 秀 芳 家 中 以 務 農 為 業 解 放 前 後, 父 親 曾 在 三


Microsoft Word - 成长的痕迹散文集.docx

Microsoft Word - [术数]《八卦象数与疾病预测》黄鉴.doc

Microsoft Word - 席慕容散文集.doc

Microsoft Word - 變形記

!

!

<4D F736F F D20D6D0B9FABDDAC8D5CEC4BBAF2DB5BECCEF2E646F63>

七 以 自 然 風 光 為 紋 飾 第 六 章 中 國 歷 代 民 間 藏 瓷 鑒 定 術 語 第 七 章 中 國 古 瓷 文 獻 選 一 窯 器 說 ( 清 ) 程 哲 著 二 景 德 鎮 陶 歌 序 言 我 與 春 恩 先 生 相 識 經 年, 且 為 同 好, 瓷 道 摯 友 春 恩 為 人

宗 旨 : 不 以 營 利 為 目 的, 從 事 療 事 業, 促 進 社 會 公 益 福 利 核 心 價 值 : 人 本 濟 世 勤 勞 樸 實 目 標 : 追 求 卓 越, 要 做 就 做 最 好 的 願 景 : 成 為 人 文 技 團 隊 學 習 資 訊 及 創 新 的 長 庚 本 院 各 健

宗 旨 : 不 以 營 利 為 目 的, 從 事 療 事 業, 促 進 社 會 公 益 福 利 核 心 價 值 : 人 本 濟 世 勤 勞 樸 實 目 標 : 追 求 卓 越, 要 做 就 做 最 好 的 願 景 : 成 為 人 文 技 團 隊 學 習 資 訊 及 創 新 的 長 庚 本 院 各 健

Microsoft Word - Book 8 將軍行.doc

建立Android新專案

6寸PDF生成工具

Android Service

Microsoft Word - 103鐵路佐級-國文(二)

学 习 贯 彻 中 央 尧 省 尧 市 纪 委 全 会 精 神 专 栏 中 国 共 产 党 第 十 八 届 中 央 纪 律 检 查 委 员 会 第 六 次 全 体 会 议 公 报 渊 2016 年 1 月 14 日 中 国 共 产 党 第 十 八 届 中 央 纪 律 检 查 委 员 会 第 六 次

Microsoft Word - 临政办发12.doc

中共山东省委高校工委

目 录 第 一 部 分 国 家 知 识 产 权 局 概 况 一 主 要 职 能 二 部 门 预 算 单 位 构 成 第 二 部 分 国 家 知 识 产 权 局 2016 年 部 门 预 算 表 一 财 政 拨 款 收 支 总 表 二 一 般 公 共 预 算 支 出 表 三 一 般 公 共 预 算 基

科学技术部2013年度部门预算

一、二○○二年学校工作的简要回顾

Microsoft Word - 白俄罗斯公司法汉语译文2015年7月15日修改版.docx

第 一 部 分 中 国 气 象 局 职 责 及 概 况 一 主 要 职 责 ( 一 ) 拟 定 气 象 工 作 的 方 针 政 策 法 律 法 规 发 展 战 略 和 长 远 规 划 ; 制 定 发 布 气 象 工 作 的 规 章 制 度 技 术 标 准 和 规 范 并 监 督 实 施 ; 承 担

无 锡 职 业 技 术 学 院 国 有 资 产 管 理 办 法 第 一 章 总 则 第 一 条 为 加 强 学 校 国 有 资 产 管 理, 合 理 配 置 和 有 效 使 用 国 有 资 产, 确 保 国 有 资 产 安 全 与 完 整, 保 障 和 促 进 学 校 各 项 事 业 发 展, 根

南 昌 大 学 人 力 资 源 工 作 简 讯 2015 年 第 2 期 ( 总 第 27 期 ) 目 录 1 人 力 资 源 综 合 信 息 2 人 员 调 配 及 机 构 编 制 管 理 信 息 3 劳 资 工 作 信 息 4 师 资 管 理 信 息 5 高 层 次 人 才 及 队 伍 建 设

三亚市政府投资建设项目代建制管理工作介绍

目 录 一 部 门 职 责... 1 二 预 算 编 报 范 围... 3 三 2013 年 部 门 预 算 报 表 及 情 况 说 明... 5 收 支 预 算 总 表 及 情 况 说 明... 5 收 入 预 算 表 及 情 况 说 明... 7 支 出 预 算 表 及 情 况 说 明... 1

目 录 引 言... 3 第 一 部 分 电 价 水 平 基 本 情 况...4 一 上 网 电 价...4 二 输 配 电 价...6 三 销 售 电 价...9 四 政 府 性 基 金 和 附 加...12 第 二 部 分 电 价 政 策 执 行 情 况...13 一 电 价 水 平 调 整 情

西安邮电学院本科教学工作简报


( 十 ) 其 他 会 计 工 作 第 四 条 单 位 不 得 任 用 ( 聘 用 ) 不 具 备 会 计 从 业 资 格 的 人 员 从 事 会 计 工 作 不 具 备 会 计 从 业 资 格 的 人 员, 不 得 从 事 会 计 工 作, 不 得 参 加 会 计 专 业 技 术 资 格 考 试

<C1ACD6DDCAD0CAD0B3A1BCE0B6BDB9DCC0EDBED6C8A8D4F0C7E5B5A5A3A8B9ABCABEA3A92E786C73>

Microsoft Word - Future CEDAW C CHN 7-8.doc


2014 年 12 月 16 日 广 西 春 茂 投 资 股 份 有 限 公 司 ( 原 名 广 西 汽 牛 农 业 机 械 股 份 有 限 公 司, 以 下 简 称 春 茂 股 份 挂 牌 公 司 公 司 ) 召 开 2014 年 第 五 次 临 时 股 东 大 会, 通 过 向 特 定 对 象

Microsoft Word - 面向合格投资者公开发行公司债券上市预审核反馈意见公告(截至2015年10月8日)

Transcription:

百 度 语 音 识 别 SDK Android 离 在 线 融 合 版 开 发 手 册 V1.0 北 京 百 度 网 讯 科 技 有 限 公 司 ( 版 权 所 有, 翻 版 必 究 ) 北 京 百 度 网 讯 科 技 有 限 公 司 - 1 -

目 录 目 录... 2 1 概 念 解 释... 4 2 简 介... 4 2.1 功 能 介 绍... 4 2.2 兼 容 性... 4 2.3 开 发 包 说 明... 5 2.4 总 体 框 图... 5 3 集 成 指 南... 5 3.1 注 册 百 度 开 发 者... 5 3.2 创 建 应 用... 6 3.3 开 通 语 音 识 别 服 务... 7 3.4 申 请 离 线 识 别 授 权... 8 3.5 导 入 SDK... 9 3.6 配 置 manifest... 9 3.7 权 限 声 明... 10 4 识 别 参 数... 11 5 语 音 识 别 控 件... 14 6 API 方 式 识 别... 15 6.1 语 音 识 别 器... 15 6.1.1 创 建 实 例... 15 6.1.2 设 置 监 听... 15 6.1.3 开 始 识 别... 16 6.1.4 停 止 录 音... 16 6.1.5 取 消 识 别... 16 6.1.6 销 毁... 16 6.2 监 听 器... 16 6.2.1 准 备 就 绪... 16 6.2.2 开 始 说 话... 16 6.2.3 音 量 变 化... 17 6.2.4 原 始 语 音... 17 6.2.5 说 话 结 束... 17 6.2.6 识 别 出 错... 17 6.2.7 识 别 结 果... 17 6.2.8 临 时 结 果... 17 6.2.9 识 别 事 件... 17 第 2 页

7 离 线 识 别 参 数 设 置... 18 7.1 注 意 事 项... 18 7.2 资 源 文 件 设 置... 18 7.3 离 线 垂 类 槽 数 据 设 置... 18 8 离 线 识 别 支 持 语 法 说 明... 19 8.1 说 明... 19 8.2 20000( 输 入 法 )... 19 8.3 10060( 地 图 )... 19 8.4 10001( 音 乐 )... 20 8.5 10003( 应 用 )... 21 8.6 10008( 打 电 话 / 发 短 信 )... 22 8.7 100014( 联 系 人 )... 24 8.8 100016( 手 机 设 置 )... 25 8.9 100018( 电 视 指 令 )... 26 8.10 100019( 播 放 器 指 令 )... 27 8.11 100020( 收 音 机 指 令 )... 27 8.12 100021( 用 户 命 令 )... 28 9 结 果 解 析... 29 10 错 误 码... 29 10.1 详 细 错 误 信 息... 30 10.2 详 细 错 误 码... 30 11 常 见 问 题... 31 Q1: DEMO 工 程 无 法 使 用 离 线 识 别?... 31 第 3 页

1 概 念 解 释 对 本 文 中 将 提 到 的 名 词 约 定 如 下 : 语 音 识 别 : 也 被 称 为 自 动 语 音 识 别 Automatic Speech Recognition(ASR), 其 目 标 是 将 人 类 的 语 音 中 的 词 汇 内 容 转 换 为 计 算 机 可 读 的 输 入, 例 如 按 键 二 进 制 编 码 或 者 字 符 序 列 自 然 语 言 理 解 :Natural Language Understanding(NLU) 俗 称 人 机 对 话, 人 工 智 能 的 分 支 学 科 研 究 用 电 子 计 算 机 模 拟 人 的 语 言 交 际 过 程, 使 计 算 机 能 理 解 和 运 用 人 类 社 会 的 自 然 语 言 如 汉 语 英 语 等, 实 现 人 机 之 间 的 自 然 语 言 通 信, 以 代 替 人 的 部 分 脑 力 劳 动, 包 括 查 询 资 料 解 答 问 题 摘 录 文 献 汇 编 资 料 以 及 一 切 有 关 自 然 语 言 信 息 的 加 工 处 理 BDASRv2: 语 音 识 别 SDK 离 在 线 融 合 版 的 简 称, 详 见 下 条 语 音 识 别 SDK 离 在 线 融 合 版 : 即 本 开 发 包, 文 中 简 称 为 BDASRv2 BDASRv2 是 一 个 封 装 了 语 音 采 集 语 音 预 处 理 云 端 识 别 离 线 识 别 等 功 能 的 语 音 识 别 解 决 方 案 使 用 BDASRv2 可 以 快 速 在 应 用 程 序 中 集 成 语 音 识 别 功 能 应 用 程 序 : 在 开 发 中 使 用 了 BDASRv2, 具 有 语 音 识 别 功 能 的 产 品 线 产 品 开 发 者 : 想 使 用 BDASRv2 到 应 用 程 序 中, 正 在 阅 读 本 文 档 的 开 发 人 员 2 简 介 百 度 语 音 Android 版 本 SDK 离 在 线 融 合 版 是 运 行 在 Android 平 台 的 一 体 化 语 音 识 别 解 决 方 案, 以 JAR 包 + 动 态 链 接 库 的 形 式 发 布 基 于 该 方 案, 开 发 者 可 以 轻 松 的 构 建 功 能 完 备 交 互 性 强 的 语 音 识 别 应 用 程 序 2.1 功 能 介 绍 基 本 功 能 : 录 音, 语 音 数 据 处 理, 端 点 检 测 网 络 通 讯 和 状 态 通 知, 返 回 识 别 结 果 语 音 识 别 控 件 : 集 成 提 示 音 音 量 反 馈 动 效 整 套 交 互 的 对 话 框 控 件, 方 便 开 发 者 快 速 集 成 播 放 提 示 音 : 在 录 音 前 后 播 放 提 示 音, 优 化 用 户 体 验 监 听 语 音 能 量 : 实 时 反 馈 用 户 当 前 说 话 声 音 能 量 强 度 语 义 理 解 : 将 语 音 识 别 成 领 域 相 关 的 语 义 结 果 本 文 档 适 用 于 对 Android 应 用 开 发 有 基 本 了 解 的 开 发 人 员 2.2 兼 容 性 系 统 : 支 持 Android 2.3(API Level 9) 及 以 上 系 统 需 要 开 发 者 通 过 minsdkversion 来 保 证 支 持 系 统 的 检 测 机 型 : 手 机 和 平 板 皆 可 第 4 页

架 构 : 支 持 ARM 平 台 ( 只 提 供 armeabi 架 构 的 动 态 库, 可 以 兼 容 其 他 架 构 ) 硬 件 要 求 : 要 求 设 备 上 有 麦 克 风 网 络 : 支 持 WIFI 及 移 动 网 络, 移 动 网 络 支 持 使 用 NET 网 关 及 WAP 网 关 (CMWAP CTWAP UNIWAP 3GWAP) 2.3 开 发 包 说 明 文 件 / 文 件 夹 名 说 明 /demo/ 语 音 识 别 SDK demo 工 程 /libs/ 包 括 so 库 及 jar 包 /res 语 音 识 别 对 话 框 资 源 文 件 及 音 效 文 件, 如 果 不 使 用 对 话 框 可 以 不 集 成 /DEMO-VoiceRecognition-2.0.1.apk Android 示 例 应 用 2.4 总 体 框 图 3 集 成 指 南 3.1 注 册 百 度 开 发 者 使 用 百 度 语 音 技 术 服 务 首 先 需 要 注 册 成 为 百 度 开 发 者, 如 果 您 在 登 陆 百 度 帐 号 后 进 入 应 用 管 理 出 现 如 下 提 示, 说 明 您 的 百 度 帐 号 还 没 有 注 册 成 为 百 度 开 发 者 请 按 要 求 填 写 开 发 者 信 息 并 完 成 百 度 开 发 者 的 注 册 第 5 页

3.2 创 建 应 用 在 首 页 登 陆 已 经 注 册 为 开 发 者 的 百 度 账 号, 然 后 点 击 页 面 上 方 的 应 用 管 理 进 入 应 用 管 理 页 面 如 果 您 之 前 在 百 度 开 发 者 中 心 创 建 过 应 用, 则 会 出 现 您 之 前 曾 经 创 建 过 的 应 用 ; 如 果 您 之 前 没 有 创 建 过 应 用, 则 需 要 新 创 建 一 个 应 用 1 点 击 右 上 角 填 写 应 用 名 称 并 选 择 应 用 垂 类 信 息, 即 可 创 建 一 个 新 的 应 用 第 6 页

2 创 建 成 功 后, 新 创 建 的 应 用 会 出 现 在 应 用 列 表 最 上 方 的 位 置 3 点 击 查 看 Key 可 以 查 看 当 前 应 用 的 AppID API Key Secret Key 信 息 3.3 开 通 语 音 识 别 服 务 新 创 建 或 从 未 开 通 语 音 识 别 服 务 的 应 用, 则 需 要 开 通 语 音 识 别 服 务 之 后 才 可 以 使 用 第 7 页

1 点 击 应 用 卡 片 上 的 按 钮, 选 择 语 音 识 别 进 行 开 通 2 语 音 识 别 服 务 开 通 成 功 后 即 可 获 得 50000 次 / 天 的 在 线 调 用 次 数 配 额 3.4 申 请 离 线 识 别 授 权 1 如 果 您 使 用 的 是 离 在 线 融 合 语 音 识 别 SDK, 并 且 需 要 使 用 离 线 识 别, 需 要 申 请 离 线 识 别 授 权 点 击 管 理 语 音 识 别 选 择 申 请 离 线 识 别 授 权 2 选 择 应 用 类 型 为 Android 或 者 ios, 填 写 并 提 交 离 线 授 权 所 需 信 息 :Android 应 用 为 应 用 包 名, ios 应 用 为 Bundle ID 提 交 成 功 后 即 获 取 离 线 识 别 正 式 授 权 第 8 页

注 : 请 确 保 填 写 提 交 的 信 息 准 确, 否 则 会 无 法 通 过 离 线 授 权 验 证 导 致 离 线 识 别 不 可 用 3 如 果 暂 时 没 有 包 名 信 息, 您 可 以 先 下 载 临 时 授 权 文 件, 集 成 到 项 目 中 进 行 开 发 调 测, 临 时 授 权 文 件 的 有 效 期 为 30 天 在 您 的 应 用 正 式 对 外 发 布 前, 请 在 左 侧 填 写 包 名 信 息, 并 确 保 发 版 的 apk 中 没 有 授 权 文 件 4 离 线 识 别 授 权 信 息 提 交 成 功 后, 通 过 开 发 环 境 运 行 或 者 打 包 安 装 到 手 机 设 备 上, 在 设 备 联 网 的 情 况 下 会 自 动 下 载 正 式 授 权 文 件 并 激 活 离 线 识 别 功 能, 一 定 要 确 保 应 用 包 名 填 写 正 确 3.5 导 入 SDK 1. 将 开 发 包 中 的 libs 目 录 合 并 到 工 程 目 录 的 libs 目 录, 其 中 包 括 了 各 平 台 的 so 库, 开 发 者 视 应 用 需 要 可 以 进 行 删 减 2. 将 开 发 包 中 的 res 目 录 合 并 到 工 程 目 录 的 res 目 录 3.6 配 置 manifest 1.... 2. <uses-permission android:name="android.permission.record_audio" /> 3. <uses-permission android:name="android.permission.internet" /> 4. <uses-permission android:name="android.permission.access_network_state" /> 第 9 页

5. <uses-permission android:name="android.permission.access_wifi_state" /> 6. <uses-permission android:name="android.permission.change_wifi_state" /> 7. <uses-permission android:name="android.permission.read_phone_state" /> 8. <uses-permission android:name="android.permission.write_external_storage" /> 9.... 10. <application 11. android:icon="@drawable/ic_launcher" 12. android:label="@string/app_name"> 13. 14. <!-- begin: baidu speech sdk--> 15. <!-- 请 填 写 应 用 实 际 的 APP_ID --> 16. <meta-data android:name="com.baidu.speech.app_id" android:value="your app id"/> 17. <!-- 请 填 写 应 用 实 际 的 API_KEY --> 18. <meta-data android:name="com.baidu.speech.api_key" android:value="your api key"/> 19. <!-- 请 填 写 应 用 实 际 的 SECRET_KEY --> 20. <meta-data android:name="com.baidu.speech.secret_key" android:value="your api secre t"/> 21. <service android:name="com.baidu.speech.voicerecognitionservice" android:exported=" false" /> 22. <activity 23. android:name="com.baidu.voicerecognition.android.ui.baiduasrdigitaldialog" 24. android:configchanges="orientation keyboardhidden screenlayout" 25. android:theme="@android:style/theme.dialog" 26. android:exported="false" 27. android:screenorientation="portrait"> 28. <intent-filter> 29. <action android:name="com.baidu.action.recognize_speech" /> 30. <category android:name="android.intent.category.default" /> 31. </intent-filter> 32. </activity> 33. <!-- end : baidu speech sdk--> 34.... 35. </application> 36.... 3.7 权 限 声 明 名 称 用 途 android.permission.record_audio 允 许 应 用 使 用 麦 克 风 录 音 第 10 页

名 称 用 途 android.permission.internet 允 许 应 用 联 网, 发 送 语 音 数 据 至 服 务 器, 获 得 识 别 结 果 android.permission.access_network_state 获 取 当 前 的 网 络 状 态, 优 化 录 音 参 数 及 网 络 参 数 android.permission.read_phone_state 获 取 用 户 手 机 的 IMEI, 用 来 唯 一 的 标 识 用 户 android.permission.write_settings 存 储 用 户 的 标 识 4 识 别 参 数 支 持 的 识 别 参 数 参 数 名 类 型 值 描 述 appid int 开 放 平 台 创 建 应 用 后 分 配, 设 置 后 会 覆 盖 manifest 中 配 置 的 APP_ID key String 开 放 平 台 创 建 应 用 后 分 配, 设 置 后 会 覆 盖 manifest 中 配 置 的 API_KEY secret String 开 放 平 台 创 建 应 用 后 分 配, 设 置 后 会 覆 盖 manifest 中 配 置 的 SECRET_KEY sample int - 采 样 率 16000 8000 离 线 暂 不 支 持 sound_start int 资 源 ID 说 话 开 始 的 提 示 音 第 11 页

参 数 名 类 型 值 描 述 sound_end int 资 源 ID 说 话 结 束 的 提 示 音 sound_success int 资 源 ID 识 别 成 功 的 提 示 音 sound_error int 资 源 ID 识 别 出 错 的 提 示 音 sound_cancel int 资 源 ID 识 别 取 消 的 提 示 音 该 参 数 支 持 设 置 为 : infile String 音 频 源 1. 文 件 系 统 路 径, 如 : /sdcard/test/test.pcm 2. java 资 源 路 径, 如 : res:///com/baidu.test/16k_test.pcm 3. 数 据 源 方 法 全 名, 格 式 如 : #com.test.factory.create8kinputstream() ( 解 释 :Factory 类 中 存 在 一 个 返 回 InputStream 的 方 法 create8kinputstream()) 注 意 : 必 须 以 井 号 开 始 ; 方 法 原 型 必 须 为 :public static InputStream your_method() outfile String 文 件 路 径 保 存 识 别 过 程 产 生 的 录 音 文 件 language String - 语 种 cmn-hans-cn 中 文 普 通 话 sichuan-hans-cn 中 文 四 川 话 ( 离 线 暂 不 支 持 ) yue-hans-cn 粤 语 ( 离 线 暂 不 支 持 ) en-gb 英 语 ( 离 线 暂 不 支 持 ) nlu String - 语 义 解 析 设 置 disable 禁 用 语 义 解 析 第 12 页

参 数 名 类 型 值 描 述 enable 开 启 语 义 解 析 vad String - 语 音 活 动 检 测 search 搜 索 模 式, 适 合 短 句 输 入 input 输 入 模 式, 适 合 短 信 微 博 内 容 等 长 句 输 入 asr-base-file-path String 文 件 路 径 支 持 离 线 语 音 识 别 的 基 础 包, 下 载 方 式 参 见 [ 集 成 指 南 ] license-file-path String 文 件 路 径 可 选, 支 持 离 线 语 音 识 别 的 授 权 文 件, 下 载 方 式 参 见 [ 集 成 指 南 ], 如 果 不 设 置, 将 在 联 网 时 尝 试 在 线 获 取 lm-res-file-path String 文 件 路 径 支 持 离 线 语 音 识 别 的 附 加 包, 包 括 输 入 法 和 地 图 资 源, 下 载 方 式 参 见 [ 集 成 指 南 ] slot-data String JSON 字 符 串 用 于 自 定 义 离 线 识 别, 具 体 格 式 参 见 demo prop int - 垂 直 领 域 20000 输 入 ( 离 线 支 持 ) 10005 热 词 10060 地 图 ( 离 线 支 持 ) 10001 音 乐 ( 离 线 支 持 ) 10002 视 频 10003 应 用 ( 离 线 支 持 ) 10004 网 页 10006 购 物 10007 健 康 第 13 页

参 数 名 类 型 值 描 述 10008 电 话 ( 离 线 支 持 ) 10052 医 疗 10053 汽 车 10054 娱 乐 餐 饮 10055 财 经 10056 游 戏 10057 菜 谱 10058 助 手 100014 联 系 人 ( 离 线 支 持 ) 100016 手 机 设 置 ( 离 线 支 持 ) 100018 电 视 指 令 ( 离 线 支 持 ) 100019 播 放 器 指 令 ( 离 线 支 持 ) 100020 收 音 机 指 令 ( 离 线 支 持 ) 100021 命 令 词 ( 离 线 支 持 ) 5 语 音 识 别 控 件 语 音 识 别 控 件 提 供 了 整 套 语 音 交 互 提 示 音 音 量 反 馈 动 效 反 馈 开 发 者 可 以 像 调 起 一 个 普 通 的 Activity 一 样 简 单 的 使 用 语 音 识 别 1. public class DemoActivity extends Activity { 2. 3. private static final int REQUEST_UI = 1; 4. 5. private void start() { 6. Intent recognizerintent = new Intent(); 第 14 页

7. // recognizerintent.put("...", "...") TODO 为 recognizerintent 设 置 参 数, 支 持 的 参 数 见 本 文 档 的 识 别 参 数 一 节 8. // 为 了 支 持 离 线 识 别 能 力, 请 参 考 离 线 语 音 识 别 参 数 设 置 一 节 9. startactivityforresult(recognizerintent, REQUEST_UI); 10. } 11. 12. @Override 13. protected void onactivityresult(int requestcode, int resultcode, Intent data) { 14. super.onactivityresult(requestcode, resultcode, data); 15. if (resultcode == RESULT_OK) { 16. ArrayList<String> results = data.getstringarraylist(speechrecognizer.results_re COGNITION); 17. // data.get... TODO 识 别 结 果 包 含 的 信 息 见 本 文 档 的 结 果 解 析 一 节 18. } 19. } 20. } 6 API 方 式 识 别 6.1 语 音 识 别 器 6.1.1 创 建 实 例 可 以 通 过 android.speech.speechrecognizer 的 静 态 方 法 创 建 语 音 识 别 监 听 器, 如 : 1. private android.speech.speechrecognizer mspeechrecognizer; 2. 3. @Override 4. protected void oncreate(bundle savedinstancestate) { 5. super.oncreate(savedinstancestate); 6. //... 7. mspeechrecognizer = SpeechRecognizer.createSpeechRecognizer(this, new ComponentName (this, VoiceRecognitionService.class)); 8. } 6.1.2 设 置 监 听 可 以 通 过 设 置 监 听 器 监 听 识 别 过 程 中 产 生 的 消 息 和 最 终 的 识 别 结 果 ( 或 错 误 码 ), 具 体 见 下 文 中 识 别 监 听 器 一 节 第 15 页

1. RecognitionListener listener = new RecognitionListener() { 2. //..., 略 过 具 体 实 现 3. }; 4. mspeechrecognizer.setrecognitionlistener(listener); 6.1.3 开 始 识 别 1. Intent recognizerintent = new Intent(); 2. // recognizerintent.putextra... 3. // 为 了 支 持 离 线 识 别 能 力, 请 参 考 离 线 语 音 识 别 参 数 设 置 一 节 4. mspeechrecognizer.startlistening(recognizerintent); 6.1.4 停 止 录 音 1. mspeechrecognizer.stoplistening(); 6.1.5 取 消 识 别 识 别 取 消 后, 将 不 再 有 任 何 回 调 返 回 1. mspeechrecognizer.cancel(); 6.1.6 销 毁 1. mspeechrecognizer.destroy(); 6.2 监 听 器 为 了 监 听 识 别 过 程, 需 要 创 建 android.speech.recognitionlistener 的 实 例, 该 接 口 包 含 如 下 方 法 回 调 6.2.1 准 备 就 绪 onreadyforspeech(bundle params) 只 有 当 此 方 法 回 调 之 后 才 能 开 始 说 话, 否 则 会 影 响 识 别 效 果 6.2.2 开 始 说 话 第 16 页

onbeginningofspeech() 当 用 户 开 始 说 话 后, 将 会 回 调 此 方 法 6.2.3 音 量 变 化 onrmschanged(float rmsdb) 引 擎 将 对 每 一 帧 语 音 进 行 回 调 一 次 改 方 法 6.2.4 原 始 语 音 onbufferreceived(byte[] buffer) 此 方 法 会 被 回 调 多 次,buffer 是 当 前 帧 对 应 的 PCM 语 音 数 据, 拼 接 后 可 得 到 完 整 的 录 音 数 据 6.2.5 说 话 结 束 onendofspeech() 当 用 户 停 止 说 话 后, 将 会 回 调 此 方 法 6.2.6 识 别 出 错 onerror(int error) 错 误 码 详 见 错 误 码 一 节 ( 注 意 : 识 别 出 错 将 不 再 回 调 onresults 方 法 ) 6.2.7 识 别 结 果 onresults(bundle results) 识 别 结 果 中 包 含 : 识 别 结 果 原 始 结 果 等, 具 体 见 结 果 解 析 一 节 1. // 多 备 选 的 nbest 结 果 2. ArrayList<String> nbest = results.getstringarraylist("results_recognition"); 3. // 原 始 结 果 4. String originresult = results.getstring("origin_result"); 6.2.8 临 时 结 果 onpartialresults(bundle partialresults) 在 最 终 识 别 结 果 返 回 前, 可 能 会 收 到 多 个 临 时 识 别 结 果 6.2.9 识 别 事 件 onevent(int eventtype, Bundle params) 第 17 页

7 离 线 识 别 参 数 设 置 7.1 注 意 事 项 由 于 离 线 识 别 仅 支 持 部 分 识 别 参 数, 如 果 需 要 支 持 离 线 识 别 能 力, 需 要 确 保 当 前 的 参 数 设 置 被 离 线 所 支 持 ( 要 查 看 完 整 的 支 持 列 表, 请 参 考 识 别 参 数 一 节 ): 1. intent.putextra("sample", 16000); // 离 线 仅 支 持 16000 采 样 率 2. intent.putextra("language", "cmn-hans-cn"); // 离 线 仅 支 持 中 文 普 通 话 3. intent.putextra("prop", 20000); // 输 入 4. // intent.putextra("prop", 10060); // 地 图 5. // intent.putextra("prop", 10001); // 音 乐 6. // intent.putextra("prop", 10003); // 应 用 7. // intent.putextra("prop", 10008); // 电 话 8. // intent.putextra("prop", 100014); // 联 系 人 9. // intent.putextra("prop", 100016); // 手 机 设 置 10. // intent.putextra("prop", 100018); // 电 视 指 令 11. // intent.putextra("prop", 100019); // 播 放 器 指 令 12. // intent.putextra("prop", 100020); // 收 音 机 指 令 13. // intent.putextra("prop", 100021); // 命 令 词 7.2 资 源 文 件 设 置 1. // value 替 换 为 资 源 文 件 实 际 路 径 2. intent.putextra("asr-base-file-path", "/path/to/s_1"); 3. // value 替 换 为 license 文 件 实 际 路 径, 仅 在 使 用 临 时 license 文 件 时 需 要 进 行 设 置, 如 果 在 [ 应 用 管 理 ] 中 开 通 了 离 线 授 权, 不 需 要 设 置 该 参 数 4. intent.putextra("license-file-path", "/path/to/license-tmp-20150530.txt"); 5. if (prop == 10060) { 6. // 地 图 类 附 加 资 源,value 替 换 为 资 源 文 件 实 际 路 径 7. intent.putextra("lm-res-file-path", "/path/to/s_2_navi"); 8. } else if (prop == 20000) { 9. // 语 音 输 入 附 加 资 源,value 替 换 为 资 源 文 件 实 际 路 径 10. intent.putextra("lm-res-file-path", "/path/to/s_2_inputmethod"); 11. } 7.3 离 线 垂 类 槽 数 据 设 置 1. JSONObject slotdata = new JSONObject(); 第 18 页

2. JSONArray name = new JSONArray().put(" 张 三 ").put(" 李 四 "); 3. JSONArray song = new JSONArray().put(" 七 里 香 ").put(" 冰 雨 "); 4. JSONArray artist = new JSONArray().put(" 周 杰 伦 ").put(" 刘 德 华 "); 5. JSONArray app = new JSONArray().put(" 手 机 百 度 ").put(" 百 度 地 图 "); 6. JSONArray usercommand = new JSONArray().put(" 关 灯 ").put(" 开 门 "); 7. try { 8. slotdata.put("name", name); 9. slotdata.put("song", song); 10. slotdata.put("artist", artist); 11. slotdata.put("app", app); 12. slotdata.put("usercommand", usercommand); 13. } catch (JSONException e) { 14. 15. } 16. intent.putextra("slot-data", slotdata.tostring()); 8 离 线 识 别 支 持 语 法 说 明 8.1 说 明 本 文 档 列 举 了 离 在 线 融 合 语 音 识 别 离 线 部 分 支 持 的 命 令 说 法, 并 给 出 示 例 说 法 是 由 槽 组 成 的, 每 种 命 令 首 先 列 举 出 槽, 然 后 说 明 由 这 些 槽 组 成 的 哪 些 语 法 ; 关 于 槽 内 内 容, 如 果 数 量 较 少, 本 文 档 会 一 一 列 举 出 来, 如 果 数 量 较 多, 本 文 档 会 举 出 一 些 例 子 具 有 包 括 字 样 的 就 是 将 所 有 的 列 举 出 来 ; 本 文 档 为 了 便 于 理 解, 同 时 是 为 了 说 明 支 持 的 说 法, 命 名 和 识 别 出 的 json 结 果 可 能 有 些 出 入, 请 开 发 者 注 意 8.2 20000( 输 入 法 ) 需 要 输 入 法 资 源 文 件 支 持,s_2_InputMethod 下 载 链 接, 支 持 随 便 说 8.3 10060( 地 图 ) 需 要 地 图 资 源 文 件 支 持,s_2_Navi 下 载 链 接 槽 说 明 第 19 页

槽 名 说 明 Cmd_to 表 示 寻 找 目 的 地 的 动 词 ( 包 括 导 航, 导 航 到, 导 航 去, 出 发, 走 起, 我 要 去, 带 我 去, 走, 去, 上, 到, 我 想 去, 带 我 到, 现 在 去, 改 去 ) Arrival 任 意 地 名 Nearby 表 示 附 件 的 介 词 或 者 动 词 ( 包 括 附 近 的, 周 边 的, 旁 边 的, 最 近 的, 搜 附 近 的, 搜 周 边 的, 搜 旁 边 的, 搜 最 近 的, 我 附 近 的, 我 周 围 的, 导 航 去 周 边 的, 搜 索 周 边 的, 我 要 去 周 边 的, 导 航 去 附 近 的, 搜 索 附 近 的, 我 要 去 附 近 的, 导 航 去 最 近 的, 搜 索 最 近 的, 我 要 去 最 近 的 ) NearbyCore 表 示 一 类 事 物 的 名 词, 例 如 加 油 站, 港 口 等 ; 说 明 举 例 cmd_to Arrival 导 航 到 百 度 大 厦 Arrival 用 户 只 说 地 名, 例 如 百 度 大 厦 Nearby NearbyCore 附 近 的 加 油 站 8.4 10001( 音 乐 ) 槽 说 明 槽 名 说 明 第 20 页

槽 名 说 明 PlayCmd 播 放 命 令 ( 包 括 播 放 音 乐, 放 音 乐, 请 播 放 歌 曲, 请 播 放 音 乐, 来 一 首, 我 要 听, 给 我 来 一 首, 播 放 Song 歌 曲 名 称, 需 要 开 发 者 传 入 Artist 歌 手 名 称, 需 要 开 发 者 传 入 Tail 包 括 的 歌, 的 专 辑 说 明 举 例 PlayCmd Song 播 放 小 苹 果 PlayCmd Artist 播 放 周 杰 伦 的 歌 8.5 10003( 应 用 ) 槽 说 明 槽 名 说 明 App 应 用 名 称, 需 要 开 发 者 传 入 LaunchCmd 包 括 打 开, 开 启, 启 动 UnInstallCmd 包 括 删 除, 卸 掉, 卸 载, 删 掉 ; 第 21 页

说 明 举 例 App 直 接 说 应 用 名 称, 例 如, 微 信 LaunchCmd App 开 启 手 机 百 度 UnInstallCmd App 卸 载 360 手 机 助 手 8.6 10008( 打 电 话 / 发 短 信 ) 槽 说 明 槽 名 说 明 Name 通 讯 录 人 名, 需 要 开 发 者 传 入 PhoneNum 电 话 号 码 Call 表 示 打 电 话 的 命 令 ( 包 括 打 电 话, 打 个 电 话, 我 想 打 电 话, 我 要 打 电 话, 帮 我 打 电 话, 请 打 电 话, 拨 号, 请 拨 号, 帮 我 拨 号, 请 帮 我 拨 号, 我 要 拨 号 ) CallTo 表 示 打 电 话 给 XXX 的 命 令 ( 例 如, 呼 叫, 拨 打, 拨 号 等 ); FirstCmd 一 些 前 缀 ( 包 括 给, 我 想 给, 我 要 给, 帮 我 给, 请 给, 请 帮 我 给 ); LastCmd 包 括 打 电 话, 打 个 电 话 ; 第 22 页

槽 名 说 明 PhoneType 号 码 类 型 ( 包 括 号 码 前 缀, 例 如,132,188 等, 包 括 运 营 商, 例 如 移 动 联 通 电 信, 包 括 号 码 类 型, 例 如, 座 机, 手 机, 手 机 号 码 等 ) View 包 括 我 要 看, 看 一 下, 我 想 看, 看 看, 查 看 ; ObjectCall 包 括 没 接 通 电 话, 未 接 来 电, 已 接 电 话, 通 话 记 录 ; Sms 表 示 发 短 信 的 命 令 ( 例 如, 发 短 信, 发 个 短 信, 等 等 ); SmsTo 表 示 发 短 信 给 XXX 的 命 令 ( 发 短 信 给, 我 想 发 给 等 ); SmsLastCmd 包 括 发 短 信, 发 个 短 信, 发 信 息, 发 个 信 息 ; ObjectSms 包 括 未 读 短 信, 已 读 短 信, 全 部 短 信 ; 说 明 举 例 Call 表 示 用 户 打 电 话 的 意 图, 比 如, 打 电 话 CallTo PhoneNum 例 如 打 电 话 给 10086 CallTo Name 例 如 打 电 话 给 张 三 第 23 页

说 明 举 例 CallTo Name PhoneType 例 如, 打 电 话 给 张 三 的 移 动 号 码, 打 电 话 给 李 四 的 132 号 码, 等 ; FirstCmd Name LastCmd 例 如, 请 给 张 三 打 电 话 ; View ObjectCall 例 如, 查 看 未 接 来 电 ; Sms 表 示 用 户 打 电 话 的 意 图, 比 如, 发 个 短 信 SmsTo PhoneNum 例 如 发 短 信 给 10086 SmsTo Name 例 如 发 短 信 给 张 三 SmsTo Name PhoneType 例 如 发 短 信 给 张 三 的 移 动 号 码, 发 个 短 信 给 李 四 的 132 号 码, 等 ; FirstCmd SmsLastCmd Name 例 如, 请 给 张 三 发 个 短 信 ; View ObjectSms 例 如, 查 看 未 读 短 信 ; 8.7 100014( 联 系 人 ) 槽 说 明 槽 名 说 明 View 包 括 我 要 看, 看 一 下, 我 想 看, 看 看, 查 看 ; 第 24 页

槽 名 说 明 Name 通 讯 录 人 名, 需 要 开 发 者 传 入 PhoneType 号 码 类 型 ( 包 括 号 码 前 缀, 例 如,132,188 等, 包 括 运 营 商, 例 如 移 动 联 通 电 信, 包 括 号 码 类 型, 例 如, 座 机, 手 机, 手 机 号 码 等 ) Create 包 括 新 建, 添 加, 增 加, 加 入, 加 上 Edit 包 括 编 辑, 更 改, 更 新, 修 改 ; Del 删 除, 删 掉, 去 掉 ; Contactor 联 系 人 说 明 举 例 View Name PhoneType 查 看 张 三 的 移 动 号 码 Create (Contactor) 新 建 ( 联 系 人 ) Edit Name PhoneType 更 改 张 三 的 座 机 Del Name PhoneType 删 除 张 三 的 132 号 码 8.8 100016( 手 机 设 置 ) 第 25 页

槽 说 明 百 度 语 音 识 别 SDK Android 离 在 线 融 合 版 开 发 手 册 槽 名 说 明 PhoneSetting 电 话 设 置, 包 括 常 用 电 话 设 置, 包 括 设 定 时 间, 打 开 wifi 等 常 用 设 置 命 令 说 明 举 例 PhoneSetting 8.9 100018( 电 视 指 令 ) 槽 说 明 槽 名 说 明 Change 换 台 命 令, 包 括 调 台, 切 换, 换 台, 我 要 跳 台, 我 要 切 换, 我 要 换 台, 我 要 看 Number 数 字, 范 围 0~999 TvChannel 电 视 台, 包 括 北 京 电 视 台 等 常 用 电 视 台 ; Channel 包 括, 频 道, 台 ; 说 明 举 例 Change Number Channel 我 要 看 74 频 道 第 26 页

说 明 举 例 Change TvChannel 切 换 河 北 卫 视 8.10 100019( 播 放 器 指 令 ) 槽 说 明 槽 名 说 明 Setplayer 常 用 设 置 命 令, 包 括 推 出 播 放, 退 出, 继 续 播 放, 继 续, 暂 停 播 放, 暂 停, 上 一 首, 下 一 首, 设 置 Play 包 括 播 放, 听, 观 看 Time 表 示 时 间 的 槽 From 从 说 明 举 例 Setplayer 继 续 播 放 From Time Play 从 43 分 32 秒 开 始 播 放 8.11 100020( 收 音 机 指 令 ) 槽 说 明 第 27 页

槽 名 说 明 OpenCmd 常 见 打 开 命 令, 例 如, 收 听 电 台, 听 FM, 打 开 AM 等 ChangeMode 用 于 切 换 AM/FM 的 指 令, 例 如, 打 开 FM, 切 换 到 AM 等 CloseCmd 关 闭 收 音 机, 关 机 Number 数 字 Channel 频 道, 电 台 说 明 举 例 OpenCmd 打 开 电 台 CloseCmd 关 闭 收 音 机 OpenCmd Number (Channel) 收 听 FM 八 七 点 五 频 道 ChangeMode 切 换 到 FM 8.12 100021( 用 户 命 令 ) 槽 说 明 槽 名 说 明 第 28 页

槽 名 说 明 UserCommand 需 要 开 发 者 传 入 说 明 举 例 UserCommand 9 结 果 解 析 最 终 识 别 结 果 将 通 过 onresults(bundle results) 方 法 返 回, 其 中 results 支 持 以 下 字 段 : 参 数 名 类 型 描 述 results_recognition ArrayList 识 别 结 果 origin_result String(JSONObject) 字 符 串 形 式 的 JSON 结 构 体, 其 中 包 含 原 始 的 识 别 结 果 信 息 10 错 误 码 错 误 码 常 量 名 描 述 1 ERROR_NETWORK_TIMEOUT 网 络 超 时 2 ERROR_NETWORK 网 络 错 误 3 ERROR_AUDIO 录 音 错 误 第 29 页

错 误 码 常 量 名 描 述 4 ERROR_SERVER 服 务 端 错 误 5 ERROR_CLIENT 客 户 端 调 用 错 误 6 ERROR_SPEECH_TIMEOUT 超 时 7 ERROR_NO_MATCH 没 有 识 别 结 果 8 ERROR_RECOGNIZER_BUSY 引 擎 忙 9 ERROR_INSUFFICIENT_PERMISSIONS 缺 少 权 限 10.1 详 细 错 误 信 息 当 语 音 识 别 发 生 错 误 时, 将 通 过 RecognitionListener#onError(int error) 方 法 返 回 错 误 码, 并 且 通 过 RecognitionListener#onEvent(int eventtype, Bundle params) 方 法 返 回 详 细 的 错 误 信 息 获 取 详 细 的 错 误 信 息 示 例 如 下 : 1. @Override 2. public void onevent(int eventtype, Bundle params) { 3. switch (eventtype) { 4. case 11: // eventtype == 11 表 是 返 回 详 细 错 误 信 息 5. String reason = params.get("reason") + ""; 6. print("event_error, " + reason); 7. break; 8. } 9. } 借 助 该 方 法 返 回 的 错 误 信 息, 开 发 者 可 以 更 快 的 发 现 和 调 试 问 题 10.2 详 细 错 误 码 第 30 页

详 细 错 误 码 描 述 -3002 服 务 器 后 端 错 误 -3003 没 有 识 别 结 果 -3004 apikey/secretkey 无 语 音 识 别 权 限 -3005 语 音 质 量 过 低 7051 没 有 在 指 定 路 径 找 到 s_1( 离 线 识 别 基 础 资 源 包 ) 7052 没 有 在 指 定 路 径 找 到 s_2_xxx(prop=20000 或 10060 时 对 应 的 附 加 包 ) 7055 命 令 词 超 过 数 量 限 制 (10 个 ) 7056 没 有 指 定 prop 参 数 7057 不 支 持 的 采 样 率 ( 仅 支 持 16000 采 样 率 ) 7058 不 支 持 的 垂 类 ( 参 见 识 别 参 数 ) 7059 设 置 的 离 线 语 义 数 据 无 效 7060 不 支 持 的 语 言 类 型 ( 参 见 识 别 参 数 ) 7998 离 线 识 别 没 有 得 到 结 果 9005/9101/9xxx 下 载 授 权 失 败 ( 没 有 申 请 离 线 授 权 或 者 提 交 的 信 息 不 正 确, 参 见 如 何 验 证 提 交 的 签 名 信 息 是 否 正 确? ) 11 常 见 问 题 Q1: DEMO 工 程 无 法 使 用 离 线 识 别? 第 31 页

DEMO 工 程 要 使 用 离 线 识 别, 需 要 注 意 以 下 三 点 : 1. 离 线 授 权 2. 离 线 数 据 包 3. 识 别 参 数 是 否 支 持 离 线 离 线 授 权 方 法 一 ( 推 荐 ): 在 应 用 管 理 中 申 请 离 线 授 权 : 请 参 考 集 成 指 南 一 节 申 请 离 线 授 权, 并 且 确 认 填 写 的 包 名 或 者 bundle ID 是 否 正 确 方 法 二 : 下 载 30 天 有 效 期 的 临 时 license 文 件, 存 放 到 设 备 的 任 意 可 读 路 径, 并 通 过 如 下 方 法 设 置 ( 此 处 示 例 为 存 放 于 sdcard 根 目 录 ): 1. intent.putextra("license-file-path", "/sdcard/temp_license_2015-05-19"); 离 线 数 据 包 在 语 音 识 别 的 相 关 下 载 里 下 载 离 线 数 据 包, 存 放 到 设 备 的 任 意 可 读 路 径, 并 通 过 如 下 方 法 设 置 ( 此 处 示 例 为 存 放 于 sdcard 根 目 录 ): 1. intent.putextra("asr-base-file-path", "/sdcard/s_1"); 2. if (prop == 10060) { // 地 图 3. intent.putextra("lm-res-file-path", "/sdcard/s_2_navi"); 4. } else if (prop == 20000) { // 输 入 法 5. intent.putextra("lm-res-file-path", "/sdcard/s_2_inputmethod"); 6. } 识 别 参 数 是 否 支 持 离 线 请 参 考 离 线 识 别 参 数 设 置 - 注 意 事 项 一 节, 确 认 当 前 设 置 的 参 数 是 否 支 持 离 线 第 32 页