Help Center/ Huawei HiLens/ SDK Reference/ Audio Input/ Constructing Audio Collectors
Updated on 2023-06-15 GMT+08:00

Constructing Audio Collectors

Local Audio File

Construct an audio collector. If the audio collector fails to be created, you can view skill logs or output to locate the fault. The local microphone uses the default parameters to collect data. The sampling rate is 44100, bit width is 16 bits, dual-channel collection is used, and the number of sampling points in each frame is 1024.

  • API calling

    1.0.8 or later

    static std::shared_ptr<AudioCapture> hilens::AudioCapture::Create(const std::string filePath)

    1.1.0 or later

    static std::shared_ptr<AudioCapture> Create(const struct AudioProperties& property)

  • Parameter description
    Table 1 Parameters

    Parameter

    Description

    filePath

    If the parameter is the absolute path of an audio file on the HiLens Kit device (Chinese characters are not supported), audio data is obtained from the file.

    property

    Local microphone recording parameter. The structure is defined as follows:

    struct AudioProperties{
    unsigned int enSamplerate;
    unsigned int enBitwidth;
    unsigned int u32PtNumPerFrm;
    unsigned int soundMode;
    }

    The value range of each element is as follows:

    • enSamplerate: sampling rate. The value can be 8000, 12000, 11025, 16000, 22050, 24000, 32000, 44100, 48000, 64000, or 96000.
    • enBitwidth: bit width. The value is 1, indicating that the bit width is 16 bits.
    • u32PtNumPerFrm: number of sampling points in each frame. The value range is [80, 2048].
    • soundMode: audio channel mode. The value can be 0 (mono-channel) or 1 (dual-channel).
    • The values of u32PtNumPerFrm and enSamplerate determine the frequency of hardware interrupts. If the frequency is too high, the system performance is affected and other services are affected. It is recommended that the values of u32PtNumPerFrm and enSamplerate meet the following formula: (u32PtNumPerFrm x 1,000)/enSamplerate >= 10. For example, when enSamplerate is 16000, it is recommended that u32PtNumPerFrm be greater than or equal to 160.
    • There is only one local microphone. Different recording parameters cannot be set for multiple processes. The parameters set earlier take effect. If the parameter settings are different, the setting fails.
    • This API and the API in Playing an Audio File cannot be called at the same time.
  • Return Value

    If the operation is successful, an audio collector instance is returned. If the operation fails, nullptr is returned.