开源鸿蒙 KWS Plug-in

  • 2022-08-09
  • 浏览 (700)

KWS Plug-in

  1. Add the API of the KWS plug-in to the //foundation/ai/engine/services/server/plugin directory. This API is used to call AI capabilities. The following code snippet is an example API implementation of the KWS plug-in. The reference code is available at the //foundation/ai/engine/services/server/plugin/asr/keyword_spotting directory.

    #include "plugin/i_plugin.h
    class KWSPlugin : public IPlugin {
    public:
        KWSPlugin();
        ~KWSPlugin();
        const long long GetVersion() const override;
        const char* GetName() const override;
        const char* GetInferMode() const override;
        int32_t Prepare(long long transactionId, const DataInfo &inputInfo, DataInfo &outputInfo) override;
        int32_t SetOption(int optionType, const DataInfo &inputInfo) override;
        int32_t GetOption(int optionType, const DataInfo &inputInfo, DataInfo &outputInfo) override;
        int32_t SyncProcess(IRequest *request, IResponse *&response) override;
        int32_t AsyncProcess(IRequest *request, IPluginCallback*callback) override;
        int32_t Release(bool isFullUnload, long long transactionId, const DataInfo &inputInfo) override;
    };
    

    The preceding code implements the IPlugin API provided by the server. Table 1 shows the mapping between the client APIs and the plug-in APIs.

Table 1 Mapping between the client APIs and the plug-in APIs

Client API Plug-in API Description
AieClientPrepare Prepare Initializes the inference algorithm plug-in. For KWS, this API loads the KWS model from the fixed location (/sdcard/wenwen_inst.wk) to the memory.
AieClientSyncProcess SyncProcess Executes the inference algorithm synchronously. For KWS, this API synchronously executes the audio inference algorithm to determine whether the specified wakeup keyword exists in the audio.
AieClientAsyncProcess AsyncProcess Executes the inference algorithm asynchronously. Currently, this API is not used in KWS. However, you can implement the API based on your use case.
AieClientSetOption SetOption Sets algorithm-related configuration items, such as the confidence threshold and delay. Currently, this API is not used in KWS. However, you can implement the API based on your use case.
AieClientGetOption GetOption Obtains algorithm-related configuration items. For KWS, this API can obtain the input and output scale of the KWS model. The input scale is the MFCC feature (fixed value: 4000) required by the KWS model, and the output scale is the confidence (fixed value: 2) of the result.
AieClientRelease Release Releases the algorithm model. For KWS, this API releases the specified algorithm model and clears the dynamic memory in the feature processor.

NOTE - The AieClientInit and AieClientDestroy APIs are used to connect to and disconnect from the server, respectively. They are not called in the plug-in algorithm and therefore do not need to be defined in the plug-in. - The KWS plug-in needs to use the PLUGIN_INTERFACE_IMPL statement to expose the function pointer. Otherwise, the plug-in cannot be properly loaded.

```
PLUGIN_INTERFACE_IMPL(KWSPlugin);
```

你可能感兴趣的文章

开源鸿蒙 Subsystems

开源鸿蒙 KWS Configuration File

开源鸿蒙 KWS SDK

开源鸿蒙 Development Examples

开源鸿蒙 Configuration File

开源鸿蒙 Plug-in

开源鸿蒙 SDK

开源鸿蒙 Development Guidelines

开源鸿蒙 Development Environment

开源鸿蒙 AI Engine Framework

0  赞