1094332d3Sopenharmony_ci# intelligent_voice<a name="ZH-CN_TOPIC_0000001078525242"></a>
2094332d3Sopenharmony_ci
3094332d3Sopenharmony_ci-   [简介](#section11660541593)
4094332d3Sopenharmony_ci-   [目录](#section161941989596)
5094332d3Sopenharmony_ci    -   [接口说明](#section1551164914237)
6094332d3Sopenharmony_ci    -   [使用说明](#section129654513264)
7094332d3Sopenharmony_ci
8094332d3Sopenharmony_ci-   [相关仓](#section1371113476307)
9094332d3Sopenharmony_ci
10094332d3Sopenharmony_ci## 简介<a name="section11660541593"></a>
11094332d3Sopenharmony_ci
12094332d3Sopenharmony_ciintelligent_voice仓下主要包含HDI接口,HDI接口主要用于:
13094332d3Sopenharmony_ci
14094332d3Sopenharmony_ci-   智能音频引擎的注册、管理、回调
15094332d3Sopenharmony_ci-   Trigger模型的管理、加载、卸载,以及回调
16094332d3Sopenharmony_ci
17094332d3Sopenharmony_ci## 目录<a name="section161941989596"></a>
18094332d3Sopenharmony_ci
19094332d3Sopenharmony_ci该仓下源代码目录结构如下所示
20094332d3Sopenharmony_ci
21094332d3Sopenharmony_ci```
22094332d3Sopenharmony_cidrivers/peripheral/intelligent_voice/
23094332d3Sopenharmony_ci├── hdi_service        # hdi服务,虚拟接口实现
24094332d3Sopenharmony_ci│   └── engine         # engine虚拟接口实现
25094332d3Sopenharmony_ci│   └── trigger        # trigger虚拟接口实现
26094332d3Sopenharmony_ci├── interfaces         # intelligent_voice模块定义的虚拟接口
27094332d3Sopenharmony_ci│   └── include        # 接口定义
28094332d3Sopenharmony_ci```
29094332d3Sopenharmony_ci
30094332d3Sopenharmony_ci### 接口说明<a name="section1551164914237"></a>
31094332d3Sopenharmony_ci
32094332d3Sopenharmony_ciintelligent_voice模块提供给intelligent_voice_framework可直接调用的能力接口,主要功能有:智能音频引擎的注册、管理、回调,Trigger模型的加载卸载,回调,以及管理等。
33094332d3Sopenharmony_ci
34094332d3Sopenharmony_ci提供的部分接口说明如[表1 intelligent_voice HDI接口](#table1513255710559)所示:
35094332d3Sopenharmony_ci
36094332d3Sopenharmony_ci**表 1**  intelligent_voice HDI接口
37094332d3Sopenharmony_ci
38094332d3Sopenharmony_ci<a name="table1513255710559"></a>
39094332d3Sopenharmony_ci<table><thead align="left"><tr id="row171321857155517"><th class="cellrowborder" valign="top" width="10.721072107210723%" id="mcps1.2.4.1.1"><p id="p6132957115511"><a name="p6132957115511"></a><a name="p6132957115511"></a>头文件</p>
40094332d3Sopenharmony_ci</th>
41094332d3Sopenharmony_ci<th class="cellrowborder" valign="top" width="66.36663666366637%" id="mcps1.2.4.1.2"><p id="p14132125715552"><a name="p14132125715552"></a><a name="p14132125715552"></a>接口名称</p>
42094332d3Sopenharmony_ci</th>
43094332d3Sopenharmony_ci<th class="cellrowborder" valign="top" width="22.912291229122914%" id="mcps1.2.4.1.3"><p id="p18132205755516"><a name="p18132205755516"></a><a name="p18132205755516"></a>功能描述</p>
44094332d3Sopenharmony_ci</th>
45094332d3Sopenharmony_ci</tr>
46094332d3Sopenharmony_ci</thead>
47094332d3Sopenharmony_ci<tbody><tr id="row13132357165514"><td class="cellrowborder" rowspan="13" valign="top" width="10.721072107210723%" headers="mcps1.2.4.1.1 "><p id="p15132185775510"><a name="p15132185775510"></a><a name="p15132185775510"></a>i_engine.h</p>
48094332d3Sopenharmony_ci<p id="p18132157175510"><a name="p18132157175510"></a><a name="p18132157175510"></a></p>
49094332d3Sopenharmony_ci<p id="p2133757135510"><a name="p2133757135510"></a><a name="p2133757135510"></a></p>
50094332d3Sopenharmony_ci</td>
51094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="66.36663666366637%" headers="mcps1.2.4.1.2 "><p id="p1213365714550"><a name="p1213365714550"></a><a name="p1213365714550"></a>virtual void OnIntellVoiceEvent(const IntellVoiceEngineCallBackEvent &event) = 0;</p>
52094332d3Sopenharmony_ci</td>
53094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="22.912291229122914%" headers="mcps1.2.4.1.3 "><p id="p201331557185512"><a name="p201331557185512"></a><a name="p201331557185512"></a>开启智能语音事件</p>
54094332d3Sopenharmony_ci</td>
55094332d3Sopenharmony_ci</tr>
56094332d3Sopenharmony_ci<tr id="row171331657185514"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p913305715553"><a name="p913305715553"></a><a name="p913305715553"></a>virtual IntellVoiceStatus SetListener(std::shared_ptr<IEngineCallback> listener) = 0;</p>
57094332d3Sopenharmony_ci</td>
58094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p161332570553"><a name="p161332570553"></a><a name="p161332570553"></a>设置监听器</p>
59094332d3Sopenharmony_ci</td>
60094332d3Sopenharmony_ci</tr>
61094332d3Sopenharmony_ci<tr id="row41331557165518"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p6133145713559"><a name="p6133145713559"></a><a name="p6133145713559"></a>virtual IntellVoiceStatus Init(const IntellVoiceEngineAdapterInfo &adapterInfo) = 0;</p>
62094332d3Sopenharmony_ci</td>
63094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p131331557175510"><a name="p131331557175510"></a><a name="p131331557175510"></a>初始化</p>
64094332d3Sopenharmony_ci</td>
65094332d3Sopenharmony_ci</tr>
66094332d3Sopenharmony_ci<tr id="row77021769584"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p77031566584"><a name="p77031566584"></a><a name="p77031566584"></a>virtual IntellVoiceStatus Release() = 0;</p>
67094332d3Sopenharmony_ci</td>
68094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1470315695811"><a name="p1470315695811"></a><a name="p1470315695811"></a>释放</p>
69094332d3Sopenharmony_ci</td>
70094332d3Sopenharmony_ci</tr>
71094332d3Sopenharmony_ci<tr id="row71857914585"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1318619155811"><a name="p1318619155811"></a><a name="p1318619155811"></a>virtual IntellVoiceStatus SetParameter(const std::string &keyValueList) = 0;</p>
72094332d3Sopenharmony_ci</td>
73094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1186597589"><a name="p1186597589"></a><a name="p1186597589"></a>设置参数</p>
74094332d3Sopenharmony_ci</td>
75094332d3Sopenharmony_ci</tr>
76094332d3Sopenharmony_ci<tr id="row18831119115815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p48323975814"><a name="p48323975814"></a><a name="p48323975814"></a>virtual IntellVoiceStatus GetParameter(const std::string &keyList, getParameterCb cb) = 0;</p>
77094332d3Sopenharmony_ci</td>
78094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15832129135813"><a name="p15832129135813"></a><a name="p15832129135813"></a>获取参数</p>
79094332d3Sopenharmony_ci</td>
80094332d3Sopenharmony_ci</tr>
81094332d3Sopenharmony_ci<tr id="row71857914585"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1318619155811"><a name="p1318619155811"></a><a name="p1318619155811"></a>virtual IntellVoiceStatus Write(const uint8_t *buffer, uint32_t size) = 0;</p>
82094332d3Sopenharmony_ci</td>
83094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1186597589"><a name="p1186597589"></a><a name="p1186597589"></a>写入</p>
84094332d3Sopenharmony_ci</td>
85094332d3Sopenharmony_ci</tr>
86094332d3Sopenharmony_ci<tr id="row18831119115815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p48323975814"><a name="p48323975814"></a><a name="p48323975814"></a>virtual IntellVoiceStatus Start(const StartInfo& info) = 0;</p>
87094332d3Sopenharmony_ci</td>
88094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15832129135813"><a name="p15832129135813"></a><a name="p15832129135813"></a>启动</p>
89094332d3Sopenharmony_ci</td>
90094332d3Sopenharmony_ci</tr>
91094332d3Sopenharmony_ci<tr id="row71857914585"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1318619155811"><a name="p1318619155811"></a><a name="p1318619155811"></a>virtual IntellVoiceStatus Stop() = 0;</p>
92094332d3Sopenharmony_ci</td>
93094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1186597589"><a name="p1186597589"></a><a name="p1186597589"></a>停止</p>
94094332d3Sopenharmony_ci</td>
95094332d3Sopenharmony_ci</tr>
96094332d3Sopenharmony_ci<tr id="row18831119115815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p48323975814"><a name="p48323975814"></a><a name="p48323975814"></a>virtual IntellVoiceStatus Cancel() = 0;</p>
97094332d3Sopenharmony_ci</td>
98094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15832129135813"><a name="p15832129135813"></a><a name="p15832129135813"></a>取消</p>
99094332d3Sopenharmony_ci</td>
100094332d3Sopenharmony_ci</tr>
101094332d3Sopenharmony_ci<tr id="row18831119115815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p48323975814"><a name="p48323975814"></a><a name="p48323975814"></a>virtual IntellVoiceStatus ReadFileData(const std::string &filePath, getFileDataCb cb) = 0;</p>
102094332d3Sopenharmony_ci</td>
103094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15832129135813"><a name="p15832129135813"></a><a name="p15832129135813"></a>读取文件数据</p>
104094332d3Sopenharmony_ci</td>
105094332d3Sopenharmony_ci</tr>
106094332d3Sopenharmony_ci<tr id="row18831119115815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p48323975814"><a name="p48323975814"></a><a name="p48323975814"></a>virtual int32_t CreateAdapter(const IntellVoiceEngineAdapterDescriptor &descriptor, std::unique_ptr<IEngine> &engine) = 0;</p>
107094332d3Sopenharmony_ci</td>
108094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15832129135813"><a name="p15832129135813"></a><a name="p15832129135813"></a>创建适配器</p>
109094332d3Sopenharmony_ci</td>
110094332d3Sopenharmony_ci</tr>
111094332d3Sopenharmony_ci<tr id="row18831119115815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p48323975814"><a name="p48323975814"></a><a name="p48323975814"></a>virtual int32_t ReleaseAdapter(const IntellVoiceEngineAdapterDescriptor &descriptor) = 0;</p>
112094332d3Sopenharmony_ci</td>
113094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15832129135813"><a name="p15832129135813"></a><a name="p15832129135813"></a>释放适配器</p>
114094332d3Sopenharmony_ci</td>
115094332d3Sopenharmony_ci</tr>
116094332d3Sopenharmony_ci<tr id="row1267017500274"><td class="cellrowborder" rowspan="8" align="left" valign="top" width="12.821282128212822%" headers="mcps1.2.4.1.1 "><p id="p15674038913"><a name="p15674038913"></a><a name="p15674038913"></a></p>
117094332d3Sopenharmony_ci<p id="p825185015460"><a name="p825185015460"></a><a name="p825185015460"></a>i_trigger.h</p>
118094332d3Sopenharmony_ci<p id="p2133757135510"><a name="p2133757135510"></a><a name="p2133757135510"></a></p>
119094332d3Sopenharmony_ci<p id="p14171441118"><a name="p14171441118"></a><a name="p14171441118"></a></p>
120094332d3Sopenharmony_ci<p id="p57063567463"><a name="p57063567463"></a><a name="p57063567463"></a></p>
121094332d3Sopenharmony_ci<p id="p1285144710118"><a name="p1285144710118"></a><a name="p1285144710118"></a></p>
122094332d3Sopenharmony_ci</td>
123094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="62.16621662166217%" headers="mcps1.2.4.1.2 "><p id="p6264341172811"><a name="p6264341172811"></a><a name="p6264341172811"></a>virtual void OnRecognitionHdiEvent(const IntellVoiceRecognitionEvent &event, int32_t cookie) = 0;</p>
124094332d3Sopenharmony_ci</td>
125094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" width="25.012501250125013%" headers="mcps1.2.4.1.3 "><p id="p13264114182817"><a name="p13264114182817"></a><a name="p13264114182817"></a>开启识别接口事件</p>
126094332d3Sopenharmony_ci</td>
127094332d3Sopenharmony_ci</tr>
128094332d3Sopenharmony_ci<tr id="row2661171172814"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p126514172811"><a name="p126514172811"></a><a name="p126514172811"></a>virtual int32_t GetProperties(IntellVoiceTriggerProperties &properties) = 0;</p>
129094332d3Sopenharmony_ci</td>
130094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15265164122819"><a name="p15265164122819"></a><a name="p15265164122819"></a>获取属性</p>
131094332d3Sopenharmony_ci</td>
132094332d3Sopenharmony_ci</tr>
133094332d3Sopenharmony_ci<tr id="row4385112822818"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p10265134111284"><a name="p10265134111284"></a><a name="p10265134111284"></a>virtual int32_t LoadIntellVoiceTriggerModel(const TriggerModel &model,
134094332d3Sopenharmony_ci        const std::shared_ptr<ITriggerCallback> &callback, int32_t cookie, int32_t &handle) = 0;</p>
135094332d3Sopenharmony_ci</td>
136094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p726554110289"><a name="p726554110289"></a><a name="p726554110289"></a>加载智能语音触发模型</p>
137094332d3Sopenharmony_ci</td>
138094332d3Sopenharmony_ci</tr>
139094332d3Sopenharmony_ci<tr id="row181371630162816"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p426517411284"><a name="p426517411284"></a><a name="p426517411284"></a>virtual int32_t UnloadIntellVoiceTriggerModel(int32_t handle) = 0;</p>
140094332d3Sopenharmony_ci</td>
141094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1926512413287"><a name="p1926512413287"></a><a name="p1926512413287"></a>卸载智能语音触发模型</p>
142094332d3Sopenharmony_ci</td>
143094332d3Sopenharmony_ci</tr>
144094332d3Sopenharmony_ci<tr id="row01531026142811"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p182651741162812"><a name="p182651741162812"></a><a name="p182651741162812"></a>virtual int32_t Start(int32_t handle) = 0;</p>
145094332d3Sopenharmony_ci</td>
146094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p142651241152813"><a name="p142651241152813"></a><a name="p142651241152813"></a>启动</p>
147094332d3Sopenharmony_ci</td>
148094332d3Sopenharmony_ci</tr>
149094332d3Sopenharmony_ci<tr id="row11460182372815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1626534118284"><a name="p1626534118284"></a><a name="p1626534118284"></a>virtual int32_t Stop(int32_t handle) = 0;</p>
150094332d3Sopenharmony_ci</td>
151094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p72661241112817"><a name="p72661241112817"></a><a name="p72661241112817"></a>停止</p>
152094332d3Sopenharmony_ci</td>
153094332d3Sopenharmony_ci</tr>
154094332d3Sopenharmony_ci<tr id="row11460182372815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1626534118284"><a name="p1626534118284"></a><a name="p1626534118284"></a>virtual int32_t LoadAdapter(const IntellVoiceTriggerAdapterDsecriptor &descriptor, std::unique_ptr<ITrigger> &adapter) = 0;</p>
155094332d3Sopenharmony_ci</td>
156094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p72661241112817"><a name="p72661241112817"></a><a name="p72661241112817"></a>加载适配器</p>
157094332d3Sopenharmony_ci</td>
158094332d3Sopenharmony_ci</tr>
159094332d3Sopenharmony_ci<tr id="row11460182372815"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1626534118284"><a name="p1626534118284"></a><a name="p1626534118284"></a>virtual int32_t UnloadAdapter(const IntellVoiceTriggerAdapterDsecriptor &descriptor) = 0;</p>
160094332d3Sopenharmony_ci</td>
161094332d3Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p72661241112817"><a name="p72661241112817"></a><a name="p72661241112817"></a>卸载适配器</p>
162094332d3Sopenharmony_ci</td>
163094332d3Sopenharmony_ci</tr>
164094332d3Sopenharmony_ci</tbody>
165094332d3Sopenharmony_ci</table>
166094332d3Sopenharmony_ci
167094332d3Sopenharmony_ci### 使用说明<a name="section129654513264"></a>
168094332d3Sopenharmony_ci
169094332d3Sopenharmony_ci该仓核心功能包括两个方面:
170094332d3Sopenharmony_ci
171094332d3Sopenharmony_ci1.  提供intelligent_voice HDI接口供framework层调用,实现智能音频服务的基本功能。
172094332d3Sopenharmony_ci2.  作为标准南向接口,保证南向OEM产商实现HDI-adapter的规范性,保证生态良性演进。
173094332d3Sopenharmony_ci
174094332d3Sopenharmony_ci具体接口调用及实现,以接口注释为准。
175094332d3Sopenharmony_ci
176094332d3Sopenharmony_ci## 相关仓<a name="section1371113476307"></a>
177094332d3Sopenharmony_ci
178094332d3Sopenharmony_ci[驱动子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E9%A9%B1%E5%8A%A8%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
179094332d3Sopenharmony_ci
180094332d3Sopenharmony_ci[drivers\_framework](https://gitee.com/openharmony/drivers_framework/blob/master/README_zh.md)
181094332d3Sopenharmony_ci
182094332d3Sopenharmony_ci[drivers\_adapter](https://gitee.com/openharmony/drivers_adapter/blob/master/README_zh.md)
183094332d3Sopenharmony_ci
184094332d3Sopenharmony_ci[drivers\_adapter\_khdf\_linux](https://gitee.com/openharmony/drivers_adapter_khdf_linux/blob/master/README_zh.md)
185094332d3Sopenharmony_ci
186094332d3Sopenharmony_ci[drivers\_peripheral](https://gitee.com/openharmony/drivers_peripheral)
187094332d3Sopenharmony_ci
188