forked from xiaozhi/xiaozhi-esp32
bump to 0.8.0
This commit is contained in:
@@ -11,8 +11,8 @@
|
||||
|
||||
#include "opus_encoder.h"
|
||||
#include "opus_resampler.h"
|
||||
#include <web_socket.h>
|
||||
|
||||
#include "protocol.h"
|
||||
#include "display.h"
|
||||
#include "board.h"
|
||||
#include "ota.h"
|
||||
@@ -22,10 +22,6 @@
|
||||
#include "audio_processor.h"
|
||||
#endif
|
||||
|
||||
#define DETECTION_RUNNING 1
|
||||
#define COMMUNICATION_RUNNING 2
|
||||
|
||||
#define PROTOCOL_VERSION 3
|
||||
struct BinaryProtocol3 {
|
||||
uint8_t type;
|
||||
uint8_t reserved;
|
||||
@@ -33,24 +29,6 @@ struct BinaryProtocol3 {
|
||||
uint8_t payload[];
|
||||
} __attribute__((packed));
|
||||
|
||||
enum AudioPacketType {
|
||||
kAudioPacketTypeUnkonwn = 0,
|
||||
kAudioPacketTypeStart,
|
||||
kAudioPacketTypeStop,
|
||||
kAudioPacketTypeData,
|
||||
kAudioPacketTypeSentenceStart,
|
||||
kAudioPacketTypeSentenceEnd
|
||||
};
|
||||
|
||||
struct AudioPacket {
|
||||
AudioPacketType type = kAudioPacketTypeUnkonwn;
|
||||
std::string text;
|
||||
std::vector<uint8_t> opus;
|
||||
std::vector<int16_t> pcm;
|
||||
uint32_t timestamp;
|
||||
};
|
||||
|
||||
|
||||
enum ChatState {
|
||||
kChatStateUnknown,
|
||||
kChatStateIdle,
|
||||
@@ -91,10 +69,9 @@ private:
|
||||
std::mutex mutex_;
|
||||
std::condition_variable_any cv_;
|
||||
std::list<std::function<void()>> main_tasks_;
|
||||
WebSocket* ws_client_ = nullptr;
|
||||
Protocol* protocol_ = nullptr;
|
||||
EventGroupHandle_t event_group_;
|
||||
volatile ChatState chat_state_ = kChatStateUnknown;
|
||||
volatile bool break_speaking_ = false;
|
||||
bool skip_to_end_ = false;
|
||||
|
||||
// Audio encode / decode
|
||||
@@ -102,8 +79,7 @@ private:
|
||||
StaticTask_t audio_encode_task_buffer_;
|
||||
StackType_t* audio_encode_task_stack_ = nullptr;
|
||||
std::list<std::vector<int16_t>> audio_encode_queue_;
|
||||
std::list<AudioPacket*> audio_decode_queue_;
|
||||
std::list<AudioPacket*> audio_play_queue_;
|
||||
std::list<std::string> audio_decode_queue_;
|
||||
|
||||
OpusEncoder opus_encoder_;
|
||||
OpusDecoder* opus_decoder_ = nullptr;
|
||||
@@ -119,15 +95,10 @@ private:
|
||||
StackType_t* main_loop_task_stack_ = nullptr;
|
||||
|
||||
void MainLoop();
|
||||
BinaryProtocol3* AllocateBinaryProtocol3(const uint8_t* payload, size_t payload_size);
|
||||
void ParseBinaryProtocol3(const char* data, size_t size);
|
||||
void SetDecodeSampleRate(int sample_rate);
|
||||
void StartWebSocketClient();
|
||||
void CheckNewVersion();
|
||||
|
||||
void AudioEncodeTask();
|
||||
void AudioPlayTask();
|
||||
void HandleAudioPacket(AudioPacket* packet);
|
||||
void PlayLocalFile(const char* data, size_t size);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user