maix::audio
maix.audio module
This is
maix::audio
module of MaixCDK.
All of these elements are in namespacemaix::audio
.For MaixCDK developer: DO NOT edit this doc file manually, this doc is auto generated!
Module
No module
Enum
Format
Audio type
item | describe |
---|---|
values | FMT_NONE: format invalid FMT_S8: unsigned 8 bits FMT_S16_LE: signed 16 bits, little endian FMT_S32_LE: signed 32 bits, little endian FMT_S16_BE: signed 16 bits, big endian FMT_S32_BE: signed 32 bits, big endian FMT_U8: unsigned 8 bits FMT_U16_LE: unsigned 16 bits, little endian FMT_U32_LE: unsigned 32 bits, little endian FMT_U16_BE: unsigned 16 bits, big endian FMT_U32_BE: unsigned 32 bits, big endian |
C++ defination code:
enum Format { FMT_NONE = 0, // format invalid FMT_S8, // unsigned 8 bits FMT_S16_LE, // signed 16 bits, little endian FMT_S32_LE, // signed 32 bits, little endian FMT_S16_BE, // signed 16 bits, big endian FMT_S32_BE, // signed 32 bits, big endian FMT_U8, // unsigned 8 bits FMT_U16_LE, // unsigned 16 bits, little endian FMT_U32_LE, // unsigned 32 bits, little endian FMT_U16_BE, // unsigned 16 bits, big endian FMT_U32_BE, // unsigned 32 bits, big endian }
Variable
fmt_bits
Map the audio format to the number of bits
item | description |
---|---|
param | format: audio format |
return | number of bits |
value | { 0, 8, 16, 32, 16, 32, 8, 16, 32, 16, 32 } |
readonly | True |
C++ defination code:
const std::vector<int> fmt_bits = { 0, 8, 16, 32, 16, 32, 8, 16, 32, 16, 32 }
Function
Class
File
Audio file reader
C++ defination code:
class File: public AudioFile<float>
__init__
Construct a new File object.
item | description |
---|---|
type | func |
param | path: wav or pcm file path sample_rate: sample rate, need to be filled in when parsing .pcm files channels: channels, need to be filled in when parsing .pcm files bits_per_sample: bits per sample, need to be filled in when parsing .pcm files |
static | False |
C++ defination code:
File(int sample_rate = 16000, int channels = 1, int bits_per_sample = 16)
load
Loads an audio file from a given file path.
item | description |
---|---|
type | func |
param | path: The file path to load the audio file from. sample_rate: The sample rate of the audio file. Only required for PCM files channels: The number of channels in the audio file. Only required for PCM files bits_per_sample: The number of bits per sample in the audio file. Only required for PCM files |
return | An error code indicating whether the operation was successful or not. |
static | False |
C++ defination code:
err::Err load(std::string path, int sample_rate = 16000, int channels = 1, int bits_per_sample = 16)
save
Saves an audio file to a given file path.
item | description |
---|---|
type | func |
param | path: The path to the file where the audio file will be saved. |
return | An error code indicating whether the operation was successful or not. |
static | False |
C++ defination code:
err::Err save(std::string path)
get_pcm
Get pcm data
item | description |
---|---|
type | func |
return | pcm data. datatype @see Bytes |
static | False |
C++ defination code:
Bytes *get_pcm(bool copy = true)
set_pcm
Set pcm data
item | description |
---|---|
type | func |
param | new_pcm: pcm data. datatype @see Bytes |
static | False |
C++ defination code:
void set_pcm(Bytes *new_pcm, bool copy = true)
sample_bits
Get sample bit
item | description |
---|---|
type | func |
param | new_sample_bit: if new_sample_bit > 0, set sample bit |
return | current sample bit |
static | False |
C++ defination code:
int sample_bits(int new_sample_bits = -1)
channels
Get channels
item | description |
---|---|
type | func |
param | new_channels: if new_channels > 0, change channels |
return | current channels |
static | False |
C++ defination code:
int channels(int new_channels = -1)
sample_rate
Get sample rate
item | description |
---|---|
type | func |
param | new_sample_rate: if new_sample_rate > 0, change sample rate |
return | current sample rate |
static | False |
C++ defination code:
int sample_rate(int new_sample_rate = -1)
Recorder
Recorder class
C++ defination code:
class Recorder
Recorder
Construct a new Recorder object. currectly only pcm and wav formats supported.
item | description |
---|---|
type | func |
param | path: record path. the path determines the location where you save the file, if path is none, the audio module will not save file. sample_rate: record sample rate, default is 48000(48KHz), means 48000 samples per second. format: record sample format, default is audio::Format::FMT_S16_LE, means sampling 16 bits at a time and save as signed 16 bits, little endian. see @audio::Format channel: record sample channel, default is 1, means 1 channel sampling at the same time block: block record, default is true, means block record, if false, record will not block |
static | False |
C++ defination code:
Recorder(std::string path = std::string(), int sample_rate = 48000, audio::Format format = audio::Format::FMT_S16_LE, int channel = 1, bool block = true)
volume
Set/Get record volume
item | description |
---|---|
type | func |
param | value: volume value, If you use this parameter, audio will set the value to volume, if you don't, it will return the current volume. range is [0, 100]. |
return | the current volume |
static | False |
C++ defination code:
int volume(int value = -1)
mute
Mute
item | description |
---|---|
type | func |
note | MaixCAM2 dose not support this api. |
param | data: mute data, If you set this parameter to true, audio will set the value to mute, if you don't, it will return the current mute status. |
return | Returns whether mute is currently enabled. |
static | False |
C++ defination code:
bool mute(int data = -1)
reset
Reset record status
item | description |
---|---|
type | func |
param | start: start prepare audio data, default is True |
static | False |
C++ defination code:
void reset(bool start = true)
record
Record, Read all cached data in buffer and return. If there is no audio data in the buffer, may return empty data.
item | description |
---|---|
type | func |
note | 1. Do not set the time too low, for example: 1ms, as the buffer may not be ready with audio data, which could corrupt the internal state. 2. In non-blocking mode, you need to actively execute reset() before you can start capturing audio. Additionally, in non-blocking mode, if the buffer does not have enough data, only the currently prepared audio data will be returned. As a result, the length of the actual output audio data may not match the length of the captured audio data. |
param | record_ms: Block and record audio data lasting record_ms milliseconds and save it to a file, the return value does not return audio data. Only valid if the initialisation path is set. |
return | pcm data. datatype @see Bytes. If you pass in record_ms parameter, the return value is an empty Bytes object. |
static | False |
C++ defination code:
maix::Bytes *record(int record_ms = -1)
record_bytes
Record, Read all cached data in buffer and return. If there is no audio data in the buffer, may return empty data.
item | description |
---|---|
type | func |
note | 1. This interface is experimental and may be removed in the future. 2. In non-blocking mode, you need to actively execute reset() before you can start capturing audio. Additionally, in non-blocking mode, if the buffer does not have enough data, only the currently prepared audio data will be returned. As a result, the length of the actual output audio data may not match the length of the captured audio data. |
param | record_size: Record audio data of size record_size. |
return | pcm data. datatype @see Bytes. If you pass in record_ms parameter, the return value is an empty Bytes object. |
static | False |
C++ defination code:
maix::Bytes *record_bytes(int record_size = -1)
finish
Finish the record, if you have passed in the path, this api will save the audio data to file.
item | description |
---|---|
type | func |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err finish()
frame_size
Returns the number of bytes for frame_count frames.
item | description |
---|---|
type | func |
param | frame_count: frame count |
return | frame bytes |
static | False |
C++ defination code:
int frame_size(int frame_count = 1)
get_remaining_frames
Return the number of frames available for reading during recording, unit is frame.
item | description |
---|---|
type | func |
note | 1. MaixCAM2 dose not support this api. 2. The number of bytes per frame can be calculated using frame_size(). |
return | remaining frames |
static | False |
C++ defination code:
int get_remaining_frames()
period_size
Set/Get the audio buffer size, unit: frame.
item | description |
---|---|
type | func |
note | 1. Generally, the buffer size needs to be modified during non-blocking operations. 2. The number of bytes per frame can be calculated using frame_size(). |
param | period_size: When period_size is less than 0, the current value of period_size will be returned; when period_size is greater than 0, period_size will be updated, and the size of period_size after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_size(int period_size = -1)
period_count
Set/Get the audio buffer count, unit: frame.
item | description |
---|---|
type | func |
note | Generally, the buffer size needs to be modified during non-blocking operations. |
param | period_count: When period_count is less than 0, the current value of period_count will be returned; when period_count is greater than 0, period_count will be updated, and the size of period_count after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_count(int period_count = -1)
sample_rate
Get sample rate
item | description |
---|---|
type | func |
return | returns sample rate |
static | False |
C++ defination code:
int sample_rate()
format
Get sample format
item | description |
---|---|
type | func |
return | returns sample format |
static | False |
C++ defination code:
audio::Format format()
channel
Get sample channel
item | description |
---|---|
type | func |
return | returns sample channel |
static | False |
C++ defination code:
int channel()
Player
Player class
C++ defination code:
class Player
Player
Construct a new Player object
item | description |
---|---|
type | func |
param | path: player path. the path determines the location where you save the file, if path is none, the audio module will not save file. sample_rate: player sample rate, default is 48000(48KHz), means 48000 samples per second. format: player sample format, default is audio::Format::FMT_S16_LE, means sampling 16 bits at a time and save as signed 16 bits, little endian. see @audio::Format channel: player sample channel, default is 1, means 1 channel sampling at the same time block: block record, default is true, means block record, if false, record will not block |
static | False |
C++ defination code:
Player(std::string path = std::string(), int sample_rate = 48000, audio::Format format = audio::Format::FMT_S16_LE, int channel = 1, bool block = true)
volume
Set/Get player volume
item | description |
---|---|
type | func |
param | value: volume value, If you use this parameter, audio will set the value to volume, if you don't, it will return the current volume. range is [0, 100]. |
return | the current volume |
static | False |
C++ defination code:
int volume(int value = -1)
play
Play
item | description |
---|---|
type | func |
param | data: audio data, must be raw data |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err play(maix::Bytes *data = maix::audio::Player::NoneBytes)
frame_size
Returns the number of bytes for frame_count frames.
item | description |
---|---|
type | func |
param | frame_count: frame count |
return | frame bytes |
static | False |
C++ defination code:
int frame_size(int frame_count = 1)
get_remaining_frames
Return the number of idle frames available for writing during playback, unit: frame. if there are no idle frames, it will cause blocking.
item | description |
---|---|
type | func |
note | 1. MaixCAM2 dose not support this api. 2. The number of bytes per frame can be calculated using frame_size(). |
return | remaining frames |
static | False |
C++ defination code:
int get_remaining_frames()
period_size
Set/Get the audio buffer size, unit: frame.
item | description |
---|---|
type | func |
note | 1. Generally, the buffer size needs to be modified during non-blocking operations. 2. The number of bytes per frame can be calculated using frame_size(). |
param | period_size: When period_size is less than 0, the current value of period_size will be returned; when period_size is greater than 0, period_size will be updated, and the size of period_size after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_size(int period_size = -1)
period_count
Set/Get the audio buffer count, unit: frame.
item | description |
---|---|
type | func |
note | Generally, the buffer size needs to be modified during non-blocking operations. |
param | period_count: When period_count is less than 0, the current value of period_count will be returned; when period_count is greater than 0, period_count will be updated, and the size of period_count after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_count(int period_count = -1)
reset
Reset player status
item | description |
---|---|
type | func |
param | start: start play audio data, default is False |
static | False |
C++ defination code:
void reset(bool start = false)
sample_rate
Get sample rate
item | description |
---|---|
type | func |
return | returns sample rate |
static | False |
C++ defination code:
int sample_rate()
format
Get sample format
item | description |
---|---|
type | func |
return | returns sample format |
static | False |
C++ defination code:
audio::Format format()
channel
Get sample channel
item | description |
---|---|
type | func |
return | returns sample channel |
static | False |
C++ defination code:
int channel()