オーディオHAL¶
Audio HAL
オーディオボードハードウェアの抽象化レイヤーは、ユーザーアプリケーションとESP32 LyraTなどの特定のオーディオボードのハードウェアドライバー間のインターフェイスとして機能します。
Abstraction layer for audio board hardware, serves as an interface between the user application and the hardware driver for specific audio board like ESP32 LyraT.
APIは、ADCおよびDAC信号変換のサンプリングレート、データビット幅、I2Cストリームパラメータ、およびADCおよびDACに接続された信号チャネルの選択を構成するためのデータ構造を提供します。 また、いくつかの特定の機能が含まれています。 オーディオボードの初期化、audio_hal_init()
、ボリュームの制御、audio_hal_get_volume()
およびaudio_hal_set_volume()
。
The API provides data structures to configure sampling rates of ADC and DAC signal conversion, data bit widths, I2C stream parameters, and selection of signal channels connected to ADC and DAC. It also contains several specific functions to e.g. initialize the audio board,audio_hal_init()
, control the volume,audio_hal_get_volume()
andaudio_hal_set_volume()
.
APIリファレンス¶
API Reference
関数¶
Functions
-
audio_hal_handle_t
audio_hal_init
(audio_hal_codec_config_t *audio_hal_conf, audio_hal_func_t *audio_hal_func)¶ メディアコーデックドライバを初期化します。
Initialize media codec driver.
- Note
- 選択したコーデックがすでにインストールされている場合は、audio_halハンドルが返されます。
If selected codec has already been installed, it’ll return the audio_hal handle.
- Return
- int、0成功、その他は失敗
int, 0success, othersfail
- Parameters
audio_hal_conf
: 構造を構成するaudio_hal_config_taudio_hal_conf
: Configure structure audio_hal_config_taudio_hal_func
: コーデックチップのオーディオを操作するために使用される機能を含む構造audio_hal_func
: Structure containing functions used to operate audio the codec chip
-
esp_err_t
audio_hal_deinit
(audio_hal_handle_t audio_hal)¶ メディアコーデックドライバの初期化を解除します。
Uninitialize media codec driver.
-
esp_err_t
audio_hal_ctrl_codec
(audio_hal_handle_t audio_hal, audio_hal_codec_mode_t mode, audio_hal_ctrl_t audio_hal_ctrl)¶ コーデックドライバを開始/停止します。
Start/stop codec driver.
- Return
- int、0成功、その他は失敗
int, 0success, othersfail
- Parameters
audio_hal
: 選択したオーディオコーデックの参照関数ポインタaudio_hal
: reference function pointer for selected audio codecmode
: エンコード/デコード/またはその両方のメディアhalコーデックモードを選択して、audio_hal_codec_mode_tから開始しますmode
: select media hal codec mode either encode/decode/or both to start from audio_hal_codec_mode_taudio_hal_ctrl
: 特定のモードの開始停止状態を選択しますaudio_hal_ctrl
: select start stop state for specific mode
-
esp_err_t
audio_hal_codec_iface_config
(audio_hal_handle_t audio_hal, audio_hal_codec_mode_t mode, audio_hal_codec_i2s_iface_t *iface)¶ コーデックI2Sインターフェイスのサンプルレートと設定 ビット幅とフォーマットはI2SまたはPCM / DSPのいずれかです。
Set codec I2S interface samples rate & bit width and format either I2S or PCM/DSP.
- Return
- 0 成功
0 Success
- -1 エラー
-1 Error
- 0 成功
- Parameters
audio_hal
: 選択したオーディオコーデックの参照関数ポインタaudio_hal
: reference function pointer for selected audio codecmode
: エンコード/デコード/またはその両方のメディアhalコーデックモードを選択して、audio_hal_codec_mode_tから開始しますmode
: select media hal codec mode either encode/decode/or both to start from audio_hal_codec_mode_tiface
: I2Sサンプルレート(例:16000、44100)、I2Sビット幅(16、24、32)、I2sフォーマット(I2S、PCM、DSP)。iface
: I2S sample rate (ex: 16000, 44100), I2S bit width (16, 24, 32),I2s format (I2S, PCM, DSP).
-
esp_err_t
audio_hal_set_mute
(audio_hal_handle_t audio_hal, bool mute)¶ 音声ミュートを設定します。 コーデックのDACミュートを有効または無効にします。
Set voice mute. Enables or disables DAC mute of a codec.
- Note
audio_hal_get_volume
は、ミュート状態でもゼロ以外の数値を示します。 スピーカーのミュートが解除されると、その番号に設定されます。audio_hal_get_volume
will still give a non-zero number in mute state. It will be set to that number when speaker is unmuted.- Return
- int、0成功、その他は失敗
int, 0success, othersfail
- Parameters
-
esp_err_t
audio_hal_set_volume
(audio_hal_handle_t audio_hal, int volume)¶ 音声音量を設定します。
Set voice volume.
- Note
- ボリュームが0の場合、ミュートが有効になり、範囲は0〜100になります。
if volume is 0, mute is enabled,range is 0-100.
- Return
- int、0成功、その他は失敗
int, 0success, othersfail
- Parameters
-
esp_err_t
audio_hal_get_volume
(audio_hal_handle_t audio_hal, int *volume)¶ 音声音量を取得します。
get voice volume.
- Note
- ボリュームが0の場合、ミュートが有効になり、範囲は0〜100です。
if volume is 0, mute is enabled, range is 0-100.
- Return
- int、0成功、その他は失敗
int, 0success, othersfail
- Parameters
構造体¶
Structures
-
struct
audio_hal_codec_i2s_iface_t
¶ オーディオコーデックチップのI2sインターフェイス構成。
I2s interface configuration for audio codec chip.
Public Members
-
audio_hal_iface_mode_t
mode
¶ オーディオコーデックチップモード
audio codec chip mode
-
audio_hal_iface_format_t
fmt
¶ I2Sインターフェースフォーマット
I2S interface format
-
audio_hal_iface_samples_t
samples
¶ 1秒あたりのI2Sインターフェイスサンプル
I2S interface samples per second
-
audio_hal_iface_bits_t
bits
¶ サンプルあたりのi2sインターフェイスのビット数
i2s interface number of bits per sample
-
audio_hal_iface_mode_t
-
struct
audio_hal_codec_config_t
¶ オーディオコーデックチップの初期化用にメディアhalを構成します。
Configure media hal for initialization of audio codec chip.
Public Members
-
audio_hal_adc_input_t
adc_input
¶ adcチャネルを設定します
set adc channel
-
audio_hal_dac_output_t
dac_output
¶ dacチャネルを設定します
set dac channel
-
audio_hal_codec_mode_t
codec_mode
¶ コーデックモードを選択:adc、dac、またはその両方
select codec mode: adc, dac or both
-
audio_hal_codec_i2s_iface_t
i2s_iface
¶ I2Sインターフェース構成を設定する
set I2S interface configuration
-
audio_hal_adc_input_t
-
struct
audio_hal
¶ オーディオコーデックチップの操作に使用される関数と変数の構成。
Configuration of functions and variables used to operate audio codec chip.
Public Members
-
esp_err_t (*
audio_codec_initialize
)(audio_hal_codec_config_t *codec_cfg)¶ コーデックを初期化する
initialize codec
-
esp_err_t (*
audio_codec_deinitialize
)(void)¶ コーデックの初期化を解除します
deinitialize codec
-
esp_err_t (*
audio_codec_ctrl
)(audio_hal_codec_mode_t mode, audio_hal_ctrl_t ctrl_state)¶ コーデックのモードと状態を制御する
control codec mode and state
-
esp_err_t (*
audio_codec_config_iface
)(audio_hal_codec_mode_t mode, audio_hal_codec_i2s_iface_t *iface)¶ i2sインターフェースを構成する
configure i2s interface
-
esp_err_t (*
audio_codec_set_mute
)(bool mute)¶ コーデックミュートを設定
set codec mute
-
esp_err_t (*
audio_codec_set_volume
)(int volume)¶ コーデックボリュームを設定する
set codec volume
-
esp_err_t (*
audio_codec_get_volume
)(int *volume)¶ コーデックボリュームを取得する
get codec volume
-
xSemaphoreHandle
audio_hal_lock
¶ コーデックのセマフォ
semaphore of codec
-
void *
handle
¶ オーディオコーデックのハンドル
handle of audio codec
-
esp_err_t (*
タイプ定義¶
Type Definitions
列挙¶
Enumerations
-
enum
audio_hal_codec_mode_t
¶ メディアハルコーデックモードを選択します。
Select media hal codec mode.
Values:
-
AUDIO_HAL_CODEC_MODE_ENCODE
= 1¶ adcを選択します
select adc
-
AUDIO_HAL_CODEC_MODE_DECODE
¶ dacを選択します
select dac
-
AUDIO_HAL_CODEC_MODE_BOTH
¶ adcとdacの両方を選択します
select both adc and dac
-
AUDIO_HAL_CODEC_MODE_LINE_IN
¶ adcチャネルを設定します
set adc channel
-
-
enum
audio_hal_adc_input_t
¶ 入力マイク信号用のADCチャネルを選択します。
Select adc channel for input mic signal.
Values:
-
AUDIO_HAL_ADC_INPUT_LINE1
= 0x00¶ adcチャンネル1へのマイク入力
mic input to adc channel 1
-
AUDIO_HAL_ADC_INPUT_LINE2
¶ adcチャンネル2へのマイク入力
mic input to adc channel 2
-
AUDIO_HAL_ADC_INPUT_ALL
¶ adcの両方のチャンネルへのマイク入力
mic input to both channels of adc
-
AUDIO_HAL_ADC_INPUT_DIFFERENCE
¶ adc差分チャンネルへのマイク入力
mic input to adc difference channel
-
-
enum
audio_hal_dac_output_t
¶ dac出力のチャンネルを選択します。
Select channel for dac output.
Values:
-
AUDIO_HAL_DAC_OUTPUT_LINE1
= 0x00¶ チャネル1へのdac出力信号
dac output signal to channel 1
-
AUDIO_HAL_DAC_OUTPUT_LINE2
¶ チャネル2へのdac出力信号
dac output signal to channel 2
-
AUDIO_HAL_DAC_OUTPUT_ALL
¶ 両方のチャネルへのdac出力信号
dac output signal to both channels
-
-
enum
audio_hal_ctrl_t
¶ 動作モードを選択します。つまり、オーディオコーデックチップの開始または停止です。
Select operating mode i.e. start or stop for audio codec chip.
Values:
-
AUDIO_HAL_CTRL_STOP
= 0x00¶ 停止モードを設定する
set stop mode
-
AUDIO_HAL_CTRL_START
= 0x01¶ スタートモードを設定する
set start mode
-
-
enum
audio_hal_iface_mode_t
¶ I2Sインターフェイスの動作モード(オーディオコーデックチップのマスターまたはスレーブ)を選択します。
Select I2S interface operating mode i.e. master or slave for audio codec chip.
Values:
-
AUDIO_HAL_MODE_SLAVE
= 0x00¶ スレーブモードを設定する
set slave mode
-
AUDIO_HAL_MODE_MASTER
= 0x01¶ マスターモードを設定する
set master mode
-
-
enum
audio_hal_iface_samples_t
¶ 1秒あたりのI2Sインターフェイスサンプルを選択します。
Select I2S interface samples per second.
Values:
-
AUDIO_HAL_08K_SAMPLES
¶ 1秒あたり8kサンプルに設定
set to 8k samples per second
-
AUDIO_HAL_11K_SAMPLES
¶ 1秒あたり11.025kサンプルに設定
set to 11.025k samples per second
-
AUDIO_HAL_16K_SAMPLES
¶ 1秒あたり16kサンプルに設定
set to 16k samples in per second
-
AUDIO_HAL_22K_SAMPLES
¶ 1秒あたり22.050kサンプルに設定
set to 22.050k samples per second
-
AUDIO_HAL_24K_SAMPLES
¶ 1秒あたり24kサンプルに設定
set to 24k samples in per second
-
AUDIO_HAL_32K_SAMPLES
¶ 1秒あたり32kサンプルに設定
set to 32k samples in per second
-
AUDIO_HAL_44K_SAMPLES
¶ 1秒あたり44.1kサンプルに設定
set to 44.1k samples per second
-
AUDIO_HAL_48K_SAMPLES
¶ 1秒あたり48kサンプルに設定
set to 48k samples per second
-
-
enum
audio_hal_iface_bits_t
¶ サンプルあたりのI2Sインターフェイスのビット数を選択します。
Select I2S interface number of bits per sample.
Values:
-
AUDIO_HAL_BIT_LENGTH_16BITS
= 1¶ サンプルあたり16ビットを設定
set 16 bits per sample
-
AUDIO_HAL_BIT_LENGTH_24BITS
¶ サンプルあたり24ビットを設定
set 24 bits per sample
-
AUDIO_HAL_BIT_LENGTH_32BITS
¶ サンプルあたり32ビットを設定
set 32 bits per sample
-
-
enum
audio_hal_iface_format_t
¶ オーディオコーデックチップのI2Sインターフェイスフォーマットを選択します。
Select I2S interface format for audio codec chip.
Values:
-
AUDIO_HAL_I2S_NORMAL
= 0¶ 通常のI2Sフォーマットを設定する
set normal I2S format
-
AUDIO_HAL_I2S_LEFT
¶ 左のフォーマットをすべて設定
set all left format
-
AUDIO_HAL_I2S_RIGHT
¶ すべての正しい形式を設定します
set all right format
-
AUDIO_HAL_I2S_DSP
¶ dsp / pcm形式を設定します
set dsp/pcm format
-