forked from xiaozhi/xiaozhi-esp32
add vad to detection and communication
This commit is contained in:
@@ -230,7 +230,7 @@ void Application::StartDetection() {
|
|||||||
afe_config_t afe_config = {
|
afe_config_t afe_config = {
|
||||||
.aec_init = false,
|
.aec_init = false,
|
||||||
.se_init = true,
|
.se_init = true,
|
||||||
.vad_init = false,
|
.vad_init = true,
|
||||||
.wakenet_init = true,
|
.wakenet_init = true,
|
||||||
.voice_communication_init = false,
|
.voice_communication_init = false,
|
||||||
.voice_communication_agc_init = false,
|
.voice_communication_agc_init = false,
|
||||||
@@ -411,12 +411,19 @@ void Application::AudioDetectionTask() {
|
|||||||
|
|
||||||
CheckTestButton();
|
CheckTestButton();
|
||||||
if (chat_state_ == kChatStateTesting) {
|
if (chat_state_ == kChatStateTesting) {
|
||||||
iovec iov = {
|
auto& builtin_led = BuiltinLed::GetInstance();
|
||||||
.iov_base = heap_caps_malloc(res->data_size, MALLOC_CAP_SPIRAM),
|
if (res->vad_state == AFE_VAD_SPEECH) {
|
||||||
.iov_len = (size_t)res->data_size
|
iovec iov = {
|
||||||
};
|
.iov_base = heap_caps_malloc(res->data_size, MALLOC_CAP_SPIRAM),
|
||||||
memcpy(iov.iov_base, res->data, res->data_size);
|
.iov_len = (size_t)res->data_size
|
||||||
test_pcm_.push_back(iov);
|
};
|
||||||
|
memcpy(iov.iov_base, res->data, res->data_size);
|
||||||
|
test_pcm_.push_back(iov);
|
||||||
|
builtin_led.SetRed(128);
|
||||||
|
} else {
|
||||||
|
builtin_led.SetRed(32);
|
||||||
|
}
|
||||||
|
builtin_led.TurnOn();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -486,6 +493,15 @@ void Application::AudioCommunicationTask() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (chat_state_ == kChatStateListening) {
|
if (chat_state_ == kChatStateListening) {
|
||||||
|
// Update the LED state based on the VAD state
|
||||||
|
auto& builtin_led = BuiltinLed::GetInstance();
|
||||||
|
if (res->vad_state == AFE_VAD_SPEECH) {
|
||||||
|
builtin_led.SetRed(128);
|
||||||
|
} else {
|
||||||
|
builtin_led.SetRed(32);
|
||||||
|
}
|
||||||
|
builtin_led.TurnOn();
|
||||||
|
|
||||||
// Send audio data to server
|
// Send audio data to server
|
||||||
iovec data = {
|
iovec data = {
|
||||||
.iov_base = malloc(res->data_size),
|
.iov_base = malloc(res->data_size),
|
||||||
|
|||||||
Reference in New Issue
Block a user