|
@ -91,6 +91,7 @@ class WAVHeader { |
|
|
header.subchunk2_size = wavbinsize; |
|
|
header.subchunk2_size = wavbinsize; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void dump() { |
|
|
void dump() { |
|
|
printf("chunk_id: %s\n", string(header.chunk_id, 4).c_str()); |
|
|
printf("chunk_id: %s\n", string(header.chunk_id, 4).c_str()); |
|
|
printf("chunk_size: %d\n", header.chunk_size); |
|
|
printf("chunk_size: %d\n", header.chunk_size); |
|
@ -153,7 +154,11 @@ void wavWriteVoice(string filename, uint32_t sample_rate, uint16_t bits_per_samp |
|
|
void sound_capture_callback(int32_t* voicedata, uint32_t len) { |
|
|
void sound_capture_callback(int32_t* voicedata, uint32_t len) { |
|
|
printf("sound_capture_callback:%d\n", len); |
|
|
printf("sound_capture_callback:%d\n", len); |
|
|
for (size_t i = 0; i < len; i++) { |
|
|
for (size_t i = 0; i < len; i++) { |
|
|
voicedata[i] = voicedata[i] << 8; //底层采集的数据是24位,左移8位转换成32位
|
|
|
|
|
|
|
|
|
voicedata[i] = voicedata[i] << 8; // 底层采集的数据是24位,左移8位转换成32位
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < len; i++) { |
|
|
|
|
|
voicedata[i] = voicedata[i] - 421600000; // 减去声望AC输出的直流偏量
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
wavWriteVoice("record.wav", 64000, 32, 1, (char*)voicedata, len * sizeof(int32_t)); |
|
|
wavWriteVoice("record.wav", 64000, 32, 1, (char*)voicedata, len * sizeof(int32_t)); |
|
|