From 5abbeb5dcdba97fef51e116987e5dd25024be784 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 13 Jul 2025 11:52:09 -0700 Subject: [PATCH 01/14] capture audio with alsa --- ai-conversation/Makefile | 14 ++++ ai-conversation/README.md | 12 ++++ ai-conversation/audio_capture | Bin 0 -> 24944 bytes ai-conversation/audio_capture.c | 123 ++++++++++++++++++++++++++++++++ ai-conversation/main.c | 5 ++ 5 files changed, 154 insertions(+) create mode 100644 ai-conversation/Makefile create mode 100644 ai-conversation/README.md create mode 100755 ai-conversation/audio_capture create mode 100644 ai-conversation/audio_capture.c create mode 100644 ai-conversation/main.c diff --git a/ai-conversation/Makefile b/ai-conversation/Makefile new file mode 100644 index 0000000..1f4f296 --- /dev/null +++ b/ai-conversation/Makefile @@ -0,0 +1,14 @@ +CC = gcc +CFLAGS = -Wall -g +TARGET = audio_capture +SRC = audio_capture.c +LIBS = -lavdevice -lavformat -lavcodec -lavutil -lasound + +$(TARGET): $(SRC) + $(CC) $(CFLAGS) -o $(TARGET) $(SRC) $(LIBS) + +clean: + rm -f *.o $(TARGET) + +install-deps: + sudo apt install build-essential libavformat-dev libavdevice-dev libavcodec-dev libavutil-dev libasound2-dev diff --git a/ai-conversation/README.md b/ai-conversation/README.md new file mode 100644 index 0000000..29daba2 --- /dev/null +++ b/ai-conversation/README.md @@ -0,0 +1,12 @@ +# Conversation +This proof of concept is for implementing conversational loop with AI at a low level. + +- [x] Capture audio +- [ ] Use deepgram for live transcription +- [ ] Detect final speech/turn detection +- [ ] AI answer -> text +- [ ] Text -> generated voice with deepgram +- [ ] Playback on client side + +## Requirements +Platform: the project is meant for Linux, specifically Ubuntu desktop. diff --git a/ai-conversation/audio_capture b/ai-conversation/audio_capture new file mode 100755 index 0000000000000000000000000000000000000000..99d283e0d4c5fc496151a473d5710dd3b8549066 GIT binary patch literal 24944 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 +#include +#include +#include +#include + +// NOTE: find this via `arecord -l` +#define ALSA_MIC_HARDWARE_DEVICE "hw:3" + +void print_pcm_state(snd_pcm_t *pcm_handle) { + snd_pcm_state_t state = snd_pcm_state(pcm_handle); + const char *state_name = snd_pcm_state_name(state); + printf("State of pcm handle: %s\n", state_name); +} + +int main() { + snd_pcm_t *pcm_handle = NULL; + + int err; + err = snd_pcm_open(&pcm_handle, ALSA_MIC_HARDWARE_DEVICE, SND_PCM_STREAM_CAPTURE, 0); + if (err < 0) { + printf("unable to open pcm device"); + return -1; + } + print_pcm_state(pcm_handle); + + const char *name = snd_pcm_name(pcm_handle); + printf("found this device: %s\n", name); + + snd_pcm_info_t *pcm_info; + snd_pcm_info_malloc(&pcm_info); + err = snd_pcm_info(pcm_handle, pcm_info); + if (err < 0) { + snd_pcm_close(pcm_handle); + printf("unable to get info of pcm device"); + return -1; + } + name = snd_pcm_info_get_name(pcm_info); + if (err < 0) { + printf("unable to get card info"); + snd_pcm_close(pcm_handle); + snd_pcm_info_free(pcm_info); + return -1; + } + printf("got pcm name: %s \n", name); + + print_pcm_state(pcm_handle); + snd_pcm_info_free(pcm_info); + + snd_pcm_hw_params_t *params; + err = snd_pcm_hw_params_malloc(¶ms); + if (err < 0) { + fprintf(stderr, "unable to mallow hw params"); + return -1; + } + err = snd_pcm_hw_params_any(pcm_handle, params); + if (err < 0) { + fprintf(stderr, "unable to find ranges for hw device"); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + return -1; + } + + uint period_size = 1024; + uint buffer_size = 4096; + uint channel_count = 1; + uint bytes_per_sample = 2; // FORMAT_S16_LE + uint samples_per_second = 48000; + snd_pcm_hw_params_set_access(pcm_handle, params, SND_PCM_ACCESS_RW_INTERLEAVED); + snd_pcm_hw_params_set_channels(pcm_handle, params, channel_count); + snd_pcm_hw_params_set_buffer_size(pcm_handle, params, buffer_size); + snd_pcm_hw_params_set_format(pcm_handle, params, SND_PCM_FORMAT_S16_LE); + snd_pcm_hw_params_set_rate(pcm_handle, params, samples_per_second, 0); + snd_pcm_hw_params_set_periods(pcm_handle, params, period_size, 0); + + err = snd_pcm_hw_params(pcm_handle, params); + if (err < 0) { + fprintf(stderr, "unable to prepare pcm\n"); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + return -1; + } + + print_pcm_state(pcm_handle); + + err = snd_pcm_start(pcm_handle); + if (err < 0) { + fprintf(stderr, "unable to start pcm"); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + return -1; + } + + print_pcm_state(pcm_handle); + + const uint seconds_to_capture = 5; + const uint periods_to_read = (samples_per_second * seconds_to_capture) / period_size; + char *buf = malloc(period_size * channel_count * bytes_per_sample); + uint periods_read = 0; + /* Read one period at a time from the hardware buffer + * We set the hardware buffer to read 4096 frames. + * The period size is 1024 frames. + * Each period is 2048 BYTES because each frame is 2 bytes. + * Each frame is 2 bytes because of 1 channel, and 16 bit format + */ + while (snd_pcm_readi(pcm_handle, (void *)buf, period_size) > 0 && periods_read < periods_to_read) { + printf("======READING FRAMES========\n"); + + // Because each frame is 2 bytes (format/bit rate), cast to int16 + int16_t *samples = (int16_t *)buf; + for (int i = 0; i < period_size; i++) { + printf("%d ", samples[i]); + } + printf("\n"); + periods_read++; + } + + free((void *)buf); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + + return 0; +} diff --git a/ai-conversation/main.c b/ai-conversation/main.c new file mode 100644 index 0000000..6c4d7f9 --- /dev/null +++ b/ai-conversation/main.c @@ -0,0 +1,5 @@ +#include + +int main() { + printf("hello world \n"); +} -- 2.52.0 From 6af3f71510045d3e0017d90e1b33b431b3d215be Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 17:15:14 -0700 Subject: [PATCH 02/14] add brainstorm thoughts --- ai-conversation/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ai-conversation/README.md b/ai-conversation/README.md index 29daba2..a3d484a 100644 --- a/ai-conversation/README.md +++ b/ai-conversation/README.md @@ -10,3 +10,17 @@ This proof of concept is for implementing conversational loop with AI at a low l ## Requirements Platform: the project is meant for Linux, specifically Ubuntu desktop. + +## Implementation + +The loop should be as follows: +- create the thread that manages the deepgram websocket client +- grab audio and send over to other thread to process & send +- stream pcm packets over the websocket connection +- print inbound messages from websocket connection to stdout +- signal in stdout when there is a "final message", which signifies "turn detection" + +## Open questions +1. Can deepgram websocket stream take any format? raw pcm? +[Answer here](https://developers.deepgram.com/docs/encoding) +2. Consider using Golang to interop with c, whereby the golang uses deepgram sdk, and the c library for alsa. -- 2.52.0 From 3bb287fcd50958dc37e462ba650334c6c08920b8 Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 17:24:56 -0700 Subject: [PATCH 03/14] use basecamp project for managing this project --- ai-conversation/README.md | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/ai-conversation/README.md b/ai-conversation/README.md index a3d484a..d3cf286 100644 --- a/ai-conversation/README.md +++ b/ai-conversation/README.md @@ -1,26 +1,5 @@ # Conversation -This proof of concept is for implementing conversational loop with AI at a low level. - -- [x] Capture audio -- [ ] Use deepgram for live transcription -- [ ] Detect final speech/turn detection -- [ ] AI answer -> text -- [ ] Text -> generated voice with deepgram -- [ ] Playback on client side +This proof of concept is for implementing conversational loop with AI at a low level with raw C. ## Requirements Platform: the project is meant for Linux, specifically Ubuntu desktop. - -## Implementation - -The loop should be as follows: -- create the thread that manages the deepgram websocket client -- grab audio and send over to other thread to process & send -- stream pcm packets over the websocket connection -- print inbound messages from websocket connection to stdout -- signal in stdout when there is a "final message", which signifies "turn detection" - -## Open questions -1. Can deepgram websocket stream take any format? raw pcm? -[Answer here](https://developers.deepgram.com/docs/encoding) -2. Consider using Golang to interop with c, whereby the golang uses deepgram sdk, and the c library for alsa. -- 2.52.0 From 1d0cb5bb938cb070e7e3a4f94ffb7024c4ca04c7 Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 18:30:12 -0700 Subject: [PATCH 04/14] add libcurl basic example --- ai-conversation/Makefile | 2 +- ai-conversation/audio_capture.c | 27 +++++++++++++++++++++++++++ ai-conversation/compile_commands.json | 16 ++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 ai-conversation/compile_commands.json diff --git a/ai-conversation/Makefile b/ai-conversation/Makefile index 1f4f296..29408bf 100644 --- a/ai-conversation/Makefile +++ b/ai-conversation/Makefile @@ -2,7 +2,7 @@ CC = gcc CFLAGS = -Wall -g TARGET = audio_capture SRC = audio_capture.c -LIBS = -lavdevice -lavformat -lavcodec -lavutil -lasound +LIBS = -lavdevice -lavformat -lavcodec -lavutil -lasound -lcurl $(TARGET): $(SRC) $(CC) $(CFLAGS) -o $(TARGET) $(SRC) $(LIBS) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio_capture.c index e823048..661fe0b 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio_capture.c @@ -3,6 +3,7 @@ #include #include #include +#include // NOTE: find this via `arecord -l` #define ALSA_MIC_HARDWARE_DEVICE "hw:3" @@ -13,6 +14,32 @@ void print_pcm_state(snd_pcm_t *pcm_handle) { printf("State of pcm handle: %s\n", state_name); } +size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) { + size_t total_size = size * nmemb; + printf("%.*s", (int)total_size, (char*)contents); + return total_size; +} + +void test_request() { + CURL *curl; + CURLcode res; + curl = curl_easy_init(); + + if (curl) { + curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com"); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) + { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + return; + } + + curl_easy_cleanup(curl); + } +} + int main() { snd_pcm_t *pcm_handle = NULL; diff --git a/ai-conversation/compile_commands.json b/ai-conversation/compile_commands.json new file mode 100644 index 0000000..1a40812 --- /dev/null +++ b/ai-conversation/compile_commands.json @@ -0,0 +1,16 @@ +[ + { + "arguments": [ + "/usr/bin/gcc", + "-c", + "-Wall", + "-g", + "-o", + "audio_capture", + "audio_capture.c" + ], + "directory": "/home/talksik/Documents/research_and_development/ai-conversation", + "file": "/home/talksik/Documents/research_and_development/ai-conversation/audio_capture.c", + "output": "/home/talksik/Documents/research_and_development/ai-conversation/audio_capture" + } +] -- 2.52.0 From cd8ea7c5edc4618dead660acca9c13809c16284f Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 18:32:48 -0700 Subject: [PATCH 05/14] write pcm data to file --- ai-conversation/audio_capture.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio_capture.c index 661fe0b..17cb8ac 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio_capture.c @@ -130,18 +130,29 @@ int main() { * Each period is 2048 BYTES because each frame is 2 bytes. * Each frame is 2 bytes because of 1 channel, and 16 bit format */ + FILE *file = fopen("output.pcm", "wb"); + if (file == NULL) { + perror("Error opening file"); + return 1; + } while (snd_pcm_readi(pcm_handle, (void *)buf, period_size) > 0 && periods_read < periods_to_read) { printf("======READING FRAMES========\n"); // Because each frame is 2 bytes (format/bit rate), cast to int16 - int16_t *samples = (int16_t *)buf; - for (int i = 0; i < period_size; i++) { - printf("%d ", samples[i]); - } + // int16_t *samples = (int16_t *)buf; + // for (int i = 0; i < period_size; i++) { + // printf("%d ", samples[i]); + // } + + fwrite(buf, sizeof(int16_t), period_size, file); + printf("\n"); periods_read++; } + // TODO: keep appending above frames into one buffer, and send to deepgram + + fclose(file); free((void *)buf); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); -- 2.52.0 From ed3850abd6ffe6e9732f4d1eb0672f8399689645 Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 18:58:21 -0700 Subject: [PATCH 06/14] transcribe audio file with deepgram --- ai-conversation/audio_capture.c | 123 +++++++++++++++++++++++++++----- 1 file changed, 106 insertions(+), 17 deletions(-) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio_capture.c index 17cb8ac..f88a027 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio_capture.c @@ -14,30 +14,109 @@ void print_pcm_state(snd_pcm_t *pcm_handle) { printf("State of pcm handle: %s\n", state_name); } +struct file_data { + FILE *file; + size_t size; +}; + +struct response_data { + char *data; + size_t size; +}; + +size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userdata) { + struct file_data *data = (struct file_data *)userdata; + size_t bytes_to_read = size * nmemb; + return fread(ptr, 1, bytes_to_read, data->file); +} + +// Returns string that caller must free +char* find_transcript(char* json_response) +{ + char* start = strstr(json_response, "\"transcript\":\""); + if (!start) return NULL; + + start += 14; // Skip past "transcript":" + char* end = strchr(start, '"'); // Find closing quote + // Copy substring between start and end + size_t len = end - start; + char* result = malloc(len + 1); + strncpy(result, start, len); + result[len] = '\0'; + return result; +} + size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) { size_t total_size = size * nmemb; - printf("%.*s", (int)total_size, (char*)contents); + struct response_data *response = (struct response_data *)userp; + + // Reallocate buffer to fit new data + response->data = realloc(response->data, response->size + total_size + 1); + if (response->data == NULL) { + return 0; // Error + } + + // Copy new data to buffer + memcpy(&response->data[response->size], contents, total_size); + response->size += total_size; + response->data[response->size] = '\0'; // Null terminate + return total_size; } -void test_request() { - CURL *curl; - CURLcode res; - curl = curl_easy_init(); +// Returns transcript of audio +char* transcribe(FILE* audio_file) { + CURL *curl; + CURLcode res; + struct curl_slist *headers = NULL; + + // Initialize response buffer + struct response_data response = {0}; + response.data = malloc(1); + response.size = 0; - if (curl) { - curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.com"); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); + // Get file size + fseek(audio_file, 0, SEEK_END); + long file_size = ftell(audio_file); + fseek(audio_file, 0, SEEK_SET); - res = curl_easy_perform(curl); - if (res != CURLE_OK) - { - fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); - return; + struct file_data data; + data.file = audio_file; + data.size = file_size; + + curl = curl_easy_init(); + if (curl) { + // Set headers for Deepgram API + headers = curl_slist_append(headers, "Authorization: Token YOUR_DEEPGRAM_API_KEY"); + headers = curl_slist_append(headers, "Content-Type: audio/*"); + + curl_easy_setopt(curl, CURLOPT_URL, "https://api.deepgram.com/v1/listen"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); + curl_easy_setopt(curl, CURLOPT_READDATA, &data); + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, file_size); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + free(response.data); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + return NULL; + } + + curl_slist_free_all(headers); + curl_easy_cleanup(curl); } - curl_easy_cleanup(curl); - } + // Parse transcript from complete response + char* transcript = find_transcript(response.data); + free(response.data); + + return transcript; } int main() { @@ -150,9 +229,19 @@ int main() { periods_read++; } - // TODO: keep appending above frames into one buffer, and send to deepgram - fclose(file); + + // Reopen file for reading and transcribe + file = fopen("output.pcm", "rb"); + if (file != NULL) { + char* transcript = transcribe(file); + if (transcript) { + printf("Transcript: %s\n", transcript); + free(transcript); + } + fclose(file); + } + free((void *)buf); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); -- 2.52.0 From 966050a7b453b5e443ac8ed986e48e850b86f66d Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 19:30:03 -0700 Subject: [PATCH 07/14] transcribe raw audio --- ai-conversation/audio_capture.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio_capture.c index f88a027..4a5ee3f 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio_capture.c @@ -33,6 +33,7 @@ size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userdata) { // Returns string that caller must free char* find_transcript(char* json_response) { + printf("Parsing response: %s \n", json_response); char* start = strstr(json_response, "\"transcript\":\""); if (!start) return NULL; @@ -61,6 +62,8 @@ size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) { response->size += total_size; response->data[response->size] = '\0'; // Null terminate + printf("read an extra %d bytes of data\n", (int)total_size); + return total_size; } @@ -88,9 +91,8 @@ char* transcribe(FILE* audio_file) { if (curl) { // Set headers for Deepgram API headers = curl_slist_append(headers, "Authorization: Token YOUR_DEEPGRAM_API_KEY"); - headers = curl_slist_append(headers, "Content-Type: audio/*"); - curl_easy_setopt(curl, CURLOPT_URL, "https://api.deepgram.com/v1/listen"); + curl_easy_setopt(curl, CURLOPT_URL, "https://api.deepgram.com/v1/listen?encoding=linear16&sample_rate=48000&channels=1"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_POST, 1L); curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); @@ -108,6 +110,8 @@ char* transcribe(FILE* audio_file) { return NULL; } + printf("done performing curl\n"); + curl_slist_free_all(headers); curl_easy_cleanup(curl); } @@ -214,9 +218,8 @@ int main() { perror("Error opening file"); return 1; } + printf("======READING FRAMES for 5 seconds========\n"); while (snd_pcm_readi(pcm_handle, (void *)buf, period_size) > 0 && periods_read < periods_to_read) { - printf("======READING FRAMES========\n"); - // Because each frame is 2 bytes (format/bit rate), cast to int16 // int16_t *samples = (int16_t *)buf; // for (int i = 0; i < period_size; i++) { @@ -224,10 +227,9 @@ int main() { // } fwrite(buf, sizeof(int16_t), period_size, file); - - printf("\n"); periods_read++; } + printf("done capturing audio\n"); fclose(file); @@ -238,10 +240,14 @@ int main() { if (transcript) { printf("Transcript: %s\n", transcript); free(transcript); + } else { + fprintf(stderr, "unable to get transcript"); } fclose(file); + } else { + fprintf(stderr, "unable to open file for reading\n"); } - + free((void *)buf); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); -- 2.52.0 From 1e4211052e0ddd705ced548f84dbd2426623cf84 Mon Sep 17 00:00:00 2001 From: talksik Date: Sat, 26 Jul 2025 21:34:11 -0700 Subject: [PATCH 08/14] hit anthropic API for ai question --- ai-conversation/audio_capture.c | 74 +++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio_capture.c index 4a5ee3f..6f4eb90 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio_capture.c @@ -123,6 +123,74 @@ char* transcribe(FILE* audio_file) { return transcript; } +char* find_ai_response(char* json_response) { + printf("Parsing response: %s \n", json_response); + char* start = strstr(json_response, "\"text\":\""); + if (!start) return NULL; + + start += 8; // Skip past "text":" + char* end = strchr(start, '"'); + if (!end) return NULL; + + size_t len = end - start; + char* result = malloc(len + 1); + strncpy(result, start, len); + result[len] = '\0'; + return result; +} + +char *ask_ai(char *question) { + CURL *curl; + CURLcode res; + struct curl_slist *headers = NULL; + + // Initialize response buffer + struct response_data response = {0}; + response.data = malloc(1); + response.size = 0; + + // Create JSON payload + char json_payload[2048]; + snprintf(json_payload, sizeof(json_payload), + "{" + "\"model\":\"claude-3-5-sonnet-20241022\"," + "\"max_tokens\":1024," + "\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]" + "}", question); + + curl = curl_easy_init(); + if (curl) { + // Set headers for Anthropic API + headers = curl_slist_append(headers, "content-Type: application/json"); + headers = curl_slist_append(headers, "anthropic-version: 2023-06-01"); + + curl_easy_setopt(curl, CURLOPT_URL, "https://api.anthropic.com/v1/messages"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + free(response.data); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + return NULL; + } + + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } + + // Parse AI response from complete response + char* answer = find_ai_response(response.data); + free(response.data); + + return answer; +} + int main() { snd_pcm_t *pcm_handle = NULL; @@ -239,6 +307,12 @@ int main() { char* transcript = transcribe(file); if (transcript) { printf("Transcript: %s\n", transcript); + + char *ai_answer = ask_ai(transcript); + if (ai_answer) { + printf("AI answer: %s\n", ai_answer); + free(ai_answer); + } free(transcript); } else { fprintf(stderr, "unable to get transcript"); -- 2.52.0 From c93267c9ee6f285299a900da5cfc95ec14c4ef08 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 27 Jul 2025 14:18:00 -0700 Subject: [PATCH 09/14] create full flow with stt, anthropic, tts, and playback This organizes some components like deepgram into own module, and also allows gets the full flow to work every time we run the program. --- ai-conversation/Makefile | 2 +- ai-conversation/audio_capture.c | 595 +++++++++++++++--------------- ai-conversation/deepgram_client.c | 168 +++++++++ ai-conversation/deepgram_client.h | 21 ++ ai-conversation/utils.c | 30 ++ ai-conversation/utils.h | 24 ++ 6 files changed, 550 insertions(+), 290 deletions(-) create mode 100644 ai-conversation/deepgram_client.c create mode 100644 ai-conversation/deepgram_client.h create mode 100644 ai-conversation/utils.c create mode 100644 ai-conversation/utils.h diff --git a/ai-conversation/Makefile b/ai-conversation/Makefile index 29408bf..176686d 100644 --- a/ai-conversation/Makefile +++ b/ai-conversation/Makefile @@ -1,7 +1,7 @@ CC = gcc CFLAGS = -Wall -g TARGET = audio_capture -SRC = audio_capture.c +SRC = audio_capture.c deepgram_client.c utils.c LIBS = -lavdevice -lavformat -lavcodec -lavutil -lasound -lcurl $(TARGET): $(SRC) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio_capture.c index 6f4eb90..d672d20 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio_capture.c @@ -1,330 +1,347 @@ -#include -#include +#include "deepgram_client.h" +#include "utils.h" #include #include #include #include +#include +#include // NOTE: find this via `arecord -l` #define ALSA_MIC_HARDWARE_DEVICE "hw:3" +#define ALSA_SPEAKER_HARDWARE_DEVICE "default" void print_pcm_state(snd_pcm_t *pcm_handle) { - snd_pcm_state_t state = snd_pcm_state(pcm_handle); - const char *state_name = snd_pcm_state_name(state); - printf("State of pcm handle: %s\n", state_name); + snd_pcm_state_t state = snd_pcm_state(pcm_handle); + const char *state_name = snd_pcm_state_name(state); + printf("State of pcm handle: %s\n", state_name); } -struct file_data { - FILE *file; - size_t size; -}; - -struct response_data { - char *data; - size_t size; -}; - -size_t read_callback(void *ptr, size_t size, size_t nmemb, void *userdata) { - struct file_data *data = (struct file_data *)userdata; - size_t bytes_to_read = size * nmemb; - return fread(ptr, 1, bytes_to_read, data->file); -} - -// Returns string that caller must free -char* find_transcript(char* json_response) -{ +char *find_ai_response(char *json_response) { printf("Parsing response: %s \n", json_response); - char* start = strstr(json_response, "\"transcript\":\""); - if (!start) return NULL; + char *start = strstr(json_response, "\"text\":\""); + if (!start) + return NULL; + + start += 8; // Skip past "text":" + char *end = strchr(start, '"'); + if (!end) + return NULL; - start += 14; // Skip past "transcript":" - char* end = strchr(start, '"'); // Find closing quote - // Copy substring between start and end size_t len = end - start; - char* result = malloc(len + 1); + char *result = malloc(len + 1); strncpy(result, start, len); result[len] = '\0'; return result; } -size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) { - size_t total_size = size * nmemb; - struct response_data *response = (struct response_data *)userp; - - // Reallocate buffer to fit new data - response->data = realloc(response->data, response->size + total_size + 1); - if (response->data == NULL) { - return 0; // Error - } - - // Copy new data to buffer - memcpy(&response->data[response->size], contents, total_size); - response->size += total_size; - response->data[response->size] = '\0'; // Null terminate - - printf("read an extra %d bytes of data\n", (int)total_size); - - return total_size; -} - -// Returns transcript of audio -char* transcribe(FILE* audio_file) { - CURL *curl; - CURLcode res; - struct curl_slist *headers = NULL; - - // Initialize response buffer - struct response_data response = {0}; - response.data = malloc(1); - response.size = 0; - - // Get file size - fseek(audio_file, 0, SEEK_END); - long file_size = ftell(audio_file); - fseek(audio_file, 0, SEEK_SET); - - struct file_data data; - data.file = audio_file; - data.size = file_size; - - curl = curl_easy_init(); - if (curl) { - // Set headers for Deepgram API - headers = curl_slist_append(headers, "Authorization: Token YOUR_DEEPGRAM_API_KEY"); - - curl_easy_setopt(curl, CURLOPT_URL, "https://api.deepgram.com/v1/listen?encoding=linear16&sample_rate=48000&channels=1"); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); - curl_easy_setopt(curl, CURLOPT_READDATA, &data); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, file_size); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); - - res = curl_easy_perform(curl); - if (res != CURLE_OK) { - fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); - free(response.data); - curl_slist_free_all(headers); - curl_easy_cleanup(curl); - return NULL; - } - - printf("done performing curl\n"); - - curl_slist_free_all(headers); - curl_easy_cleanup(curl); - } - - // Parse transcript from complete response - char* transcript = find_transcript(response.data); - free(response.data); - - return transcript; -} - -char* find_ai_response(char* json_response) { - printf("Parsing response: %s \n", json_response); - char* start = strstr(json_response, "\"text\":\""); - if (!start) return NULL; - - start += 8; // Skip past "text":" - char* end = strchr(start, '"'); - if (!end) return NULL; - - size_t len = end - start; - char* result = malloc(len + 1); - strncpy(result, start, len); - result[len] = '\0'; - return result; -} - char *ask_ai(char *question) { - CURL *curl; - CURLcode res; - struct curl_slist *headers = NULL; + CURL *curl; + CURLcode res; + struct curl_slist *headers = NULL; - // Initialize response buffer - struct response_data response = {0}; - response.data = malloc(1); - response.size = 0; + // Initialize response buffer + struct curl_response_data response = {0}; + response.data = malloc(1); + response.size = 0; - // Create JSON payload - char json_payload[2048]; - snprintf(json_payload, sizeof(json_payload), - "{" - "\"model\":\"claude-3-5-sonnet-20241022\"," - "\"max_tokens\":1024," - "\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]" - "}", question); + // Create JSON payload + char json_payload[2048]; + snprintf(json_payload, sizeof(json_payload), + "{" + "\"model\":\"claude-3-haiku-20240307\"," + "\"max_tokens\":1024," + "\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]" + "}", + question); - curl = curl_easy_init(); - if (curl) { - // Set headers for Anthropic API - headers = curl_slist_append(headers, "content-Type: application/json"); - headers = curl_slist_append(headers, "anthropic-version: 2023-06-01"); + curl = curl_easy_init(); + if (curl) { + char *anthropic_api_key = getenv("ANTHROPIC_API_KEY"); + if (!anthropic_api_key) { + printf("ANTHROPIC_API_KEY not set\n"); + free(response.data); + curl_easy_cleanup(curl); + return NULL; + } + char auth_header[256]; + snprintf(auth_header, sizeof(auth_header), "x-api-key: %s", + anthropic_api_key); + headers = curl_slist_append(headers, "content-type: application/json"); + headers = curl_slist_append(headers, auth_header); + headers = curl_slist_append(headers, "anthropic-version: 2023-06-01"); - curl_easy_setopt(curl, CURLOPT_URL, "https://api.anthropic.com/v1/messages"); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + curl_easy_setopt(curl, CURLOPT_URL, + "https://api.anthropic.com/v1/messages"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_callback_response); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); - res = curl_easy_perform(curl); - if (res != CURLE_OK) { - fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); - free(response.data); - curl_slist_free_all(headers); - curl_easy_cleanup(curl); - return NULL; - } - - curl_slist_free_all(headers); - curl_easy_cleanup(curl); + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + free(response.data); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + return NULL; } - // Parse AI response from complete response - char* answer = find_ai_response(response.data); - free(response.data); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } - return answer; + // Parse AI response from complete response + char *answer = find_ai_response(response.data); + free(response.data); + + return answer; +} + +/* count: how many bytes in the buffer + * returns int: 0 if success, -1 if failure + * NOTE: This function assumes that the audio data is using: + * - linear16 formatting (each sample is 16 bits) + * - one channel (1 sample) + * - with 48000 HZ sampling rate + * Hence, it's 2 bytes per frame. + */ +int play_pcm_data(char *buf, size_t byte_count) { + printf("going to play audio of %d bytes of data\n", (int)byte_count); + + snd_pcm_t *pcm_handle; + // The total frames in the buffer is how many bytes divided by 2 because + // of linear16 encoding, one channel + size_t total_frames = byte_count / 2; + + int err; + err = snd_pcm_open(&pcm_handle, ALSA_SPEAKER_HARDWARE_DEVICE, + SND_PCM_STREAM_PLAYBACK, 0); + if (err < 0) { + fprintf(stderr, "unable to open playback device"); + return err; + } + print_pcm_state(pcm_handle); + + const char *name = snd_pcm_name(pcm_handle); + printf("found this device: %s\n", name); + + snd_pcm_info_t *pcm_info; + snd_pcm_info_malloc(&pcm_info); + err = snd_pcm_info(pcm_handle, pcm_info); + if (err < 0) { + snd_pcm_close(pcm_handle); + printf("unable to get info of pcm device"); + return -1; + } + name = snd_pcm_info_get_name(pcm_info); + if (err < 0) { + printf("unable to get card info"); + snd_pcm_close(pcm_handle); + snd_pcm_info_free(pcm_info); + return -1; + } + printf("got pcm name: %s \n", name); + + print_pcm_state(pcm_handle); + snd_pcm_info_free(pcm_info); + if ((err = snd_pcm_set_params(pcm_handle, SND_PCM_FORMAT_S16_LE, + SND_PCM_ACCESS_RW_INTERLEAVED, 1, 48000, 1, + 500000)) < 0) { /* 0.5sec */ + printf("Playback open error: %s\n", snd_strerror(err)); + exit(EXIT_FAILURE); + } + + // we want to read in a chunk of data and writei to the pcm + size_t frames_written = 0; + size_t frames_in_each_chunk = 1024; // how many frames to read per chunk (2048 + // bytes since each frame is 2 bytes) + while (frames_written < total_frames) { + size_t frames_to_write = + frames_in_each_chunk < (total_frames - frames_written) + ? frames_in_each_chunk + : (total_frames - frames_written); + // We move the pointer x2 because each frame is 2 bytes so the next audio + // sample is 16 bits forward, not 8 + char *start_ptr = buf + (frames_written * 2); + snd_pcm_sframes_t result = + snd_pcm_writei(pcm_handle, start_ptr, frames_to_write); + if (result < 0) { + result = snd_pcm_recover(pcm_handle, result, 0); + if (result < 0) { + printf("snd_pcm_writei failed: %s\n", snd_strerror(result)); + break; + } + } + + if (result > 0 && result < frames_to_write) { + printf("Short write \n"); + } + + frames_written += result; + } + + /* pass the remaining samples, otherwise they're dropped in close */ + err = snd_pcm_drain(pcm_handle); + if (err < 0) { + printf("snd_pcm_drain failed: %s\n", snd_strerror(err)); + } + snd_pcm_close(pcm_handle); + + return 0; } int main() { - snd_pcm_t *pcm_handle = NULL; + snd_pcm_t *pcm_handle = NULL; - int err; - err = snd_pcm_open(&pcm_handle, ALSA_MIC_HARDWARE_DEVICE, SND_PCM_STREAM_CAPTURE, 0); - if (err < 0) { - printf("unable to open pcm device"); - return -1; - } - print_pcm_state(pcm_handle); + int err; + err = snd_pcm_open(&pcm_handle, ALSA_MIC_HARDWARE_DEVICE, + SND_PCM_STREAM_CAPTURE, 0); + if (err < 0) { + printf("unable to open pcm device"); + return -1; + } + print_pcm_state(pcm_handle); - const char *name = snd_pcm_name(pcm_handle); - printf("found this device: %s\n", name); + const char *name = snd_pcm_name(pcm_handle); + printf("found this device: %s\n", name); - snd_pcm_info_t *pcm_info; - snd_pcm_info_malloc(&pcm_info); - err = snd_pcm_info(pcm_handle, pcm_info); - if (err < 0) { - snd_pcm_close(pcm_handle); - printf("unable to get info of pcm device"); - return -1; - } - name = snd_pcm_info_get_name(pcm_info); - if (err < 0) { - printf("unable to get card info"); - snd_pcm_close(pcm_handle); - snd_pcm_info_free(pcm_info); - return -1; - } - printf("got pcm name: %s \n", name); - - print_pcm_state(pcm_handle); + snd_pcm_info_t *pcm_info; + snd_pcm_info_malloc(&pcm_info); + err = snd_pcm_info(pcm_handle, pcm_info); + if (err < 0) { + snd_pcm_close(pcm_handle); + printf("unable to get info of pcm device"); + return -1; + } + name = snd_pcm_info_get_name(pcm_info); + if (err < 0) { + printf("unable to get card info"); + snd_pcm_close(pcm_handle); snd_pcm_info_free(pcm_info); + return -1; + } + printf("got pcm name: %s \n", name); - snd_pcm_hw_params_t *params; - err = snd_pcm_hw_params_malloc(¶ms); - if (err < 0) { - fprintf(stderr, "unable to mallow hw params"); - return -1; - } - err = snd_pcm_hw_params_any(pcm_handle, params); - if (err < 0) { - fprintf(stderr, "unable to find ranges for hw device"); - snd_pcm_close(pcm_handle); - snd_pcm_hw_params_free(params); - return -1; - } + print_pcm_state(pcm_handle); + snd_pcm_info_free(pcm_info); - uint period_size = 1024; - uint buffer_size = 4096; - uint channel_count = 1; - uint bytes_per_sample = 2; // FORMAT_S16_LE - uint samples_per_second = 48000; - snd_pcm_hw_params_set_access(pcm_handle, params, SND_PCM_ACCESS_RW_INTERLEAVED); - snd_pcm_hw_params_set_channels(pcm_handle, params, channel_count); - snd_pcm_hw_params_set_buffer_size(pcm_handle, params, buffer_size); - snd_pcm_hw_params_set_format(pcm_handle, params, SND_PCM_FORMAT_S16_LE); - snd_pcm_hw_params_set_rate(pcm_handle, params, samples_per_second, 0); - snd_pcm_hw_params_set_periods(pcm_handle, params, period_size, 0); - - err = snd_pcm_hw_params(pcm_handle, params); - if (err < 0) { - fprintf(stderr, "unable to prepare pcm\n"); - snd_pcm_close(pcm_handle); - snd_pcm_hw_params_free(params); - return -1; - } - - print_pcm_state(pcm_handle); - - err = snd_pcm_start(pcm_handle); - if (err < 0) { - fprintf(stderr, "unable to start pcm"); - snd_pcm_close(pcm_handle); - snd_pcm_hw_params_free(params); - return -1; - } - - print_pcm_state(pcm_handle); - - const uint seconds_to_capture = 5; - const uint periods_to_read = (samples_per_second * seconds_to_capture) / period_size; - char *buf = malloc(period_size * channel_count * bytes_per_sample); - uint periods_read = 0; - /* Read one period at a time from the hardware buffer - * We set the hardware buffer to read 4096 frames. - * The period size is 1024 frames. - * Each period is 2048 BYTES because each frame is 2 bytes. - * Each frame is 2 bytes because of 1 channel, and 16 bit format - */ - FILE *file = fopen("output.pcm", "wb"); - if (file == NULL) { - perror("Error opening file"); - return 1; - } - printf("======READING FRAMES for 5 seconds========\n"); - while (snd_pcm_readi(pcm_handle, (void *)buf, period_size) > 0 && periods_read < periods_to_read) { - // Because each frame is 2 bytes (format/bit rate), cast to int16 - // int16_t *samples = (int16_t *)buf; - // for (int i = 0; i < period_size; i++) { - // printf("%d ", samples[i]); - // } - - fwrite(buf, sizeof(int16_t), period_size, file); - periods_read++; - } - printf("done capturing audio\n"); - - fclose(file); - - // Reopen file for reading and transcribe - file = fopen("output.pcm", "rb"); - if (file != NULL) { - char* transcript = transcribe(file); - if (transcript) { - printf("Transcript: %s\n", transcript); - - char *ai_answer = ask_ai(transcript); - if (ai_answer) { - printf("AI answer: %s\n", ai_answer); - free(ai_answer); - } - free(transcript); - } else { - fprintf(stderr, "unable to get transcript"); - } - fclose(file); - } else { - fprintf(stderr, "unable to open file for reading\n"); - } - - free((void *)buf); + snd_pcm_hw_params_t *params; + err = snd_pcm_hw_params_malloc(¶ms); + if (err < 0) { + fprintf(stderr, "unable to mallow hw params"); + return -1; + } + err = snd_pcm_hw_params_any(pcm_handle, params); + if (err < 0) { + fprintf(stderr, "unable to find ranges for hw device"); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); + return -1; + } - return 0; + uint period_size = 1024; + uint buffer_size = 4096; + uint channel_count = 1; + uint bytes_per_sample = 2; // FORMAT_S16_LE + uint samples_per_second = 48000; + snd_pcm_hw_params_set_access(pcm_handle, params, + SND_PCM_ACCESS_RW_INTERLEAVED); + snd_pcm_hw_params_set_channels(pcm_handle, params, channel_count); + snd_pcm_hw_params_set_buffer_size(pcm_handle, params, buffer_size); + snd_pcm_hw_params_set_format(pcm_handle, params, SND_PCM_FORMAT_S16_LE); + snd_pcm_hw_params_set_rate(pcm_handle, params, samples_per_second, 0); + snd_pcm_hw_params_set_periods(pcm_handle, params, period_size, 0); + + err = snd_pcm_hw_params(pcm_handle, params); + if (err < 0) { + fprintf(stderr, "unable to prepare pcm\n"); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + return -1; + } + + print_pcm_state(pcm_handle); + + err = snd_pcm_start(pcm_handle); + if (err < 0) { + fprintf(stderr, "unable to start pcm"); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + return -1; + } + + print_pcm_state(pcm_handle); + + const uint seconds_to_capture = 5; + const uint periods_to_read = + (samples_per_second * seconds_to_capture) / period_size; + char *buf = malloc(period_size * channel_count * bytes_per_sample); + uint periods_read = 0; + /* Read one period at a time from the hardware buffer + * We set the hardware buffer to read 4096 frames. + * The period size is 1024 frames. + * Each period is 2048 BYTES because each frame is 2 bytes. + * Each frame is 2 bytes because of 1 channel, and 16 bit format + */ + FILE *file = fopen("output.pcm", "wb"); + if (file == NULL) { + perror("Error opening file"); + return 1; + } + printf("======READING FRAMES for 5 seconds========\n"); + while (snd_pcm_readi(pcm_handle, (void *)buf, period_size) > 0 && + periods_read < periods_to_read) { + // Because each frame is 2 bytes (format/bit rate), cast to int16 + // int16_t *samples = (int16_t *)buf; + // for (int i = 0; i < period_size; i++) { + // printf("%d ", samples[i]); + // } + + fwrite(buf, sizeof(int16_t), period_size, file); + periods_read++; + } + printf("done capturing audio\n"); + + fclose(file); + + // Reopen file for reading and transcribe + file = fopen("output.pcm", "rb"); + if (file != NULL) { + char *transcript = dg_transcribe(file); + if (transcript) { + printf("Transcript: %s\n", transcript); + + char *ai_answer = ask_ai(transcript); + if (ai_answer) { + printf("AI answer: %s\n", ai_answer); + + struct curl_response_data *tts_response = dg_text_to_speech(ai_answer); + int result = play_pcm_data(tts_response->data, tts_response->size); + if (result != 0) { + fprintf(stderr, "failure in playback"); + } + + free(tts_response->data); + free(tts_response); + + // we have this response data, and buffer within it. we can loop through + // it and write the pcm data within it to alsa + free(ai_answer); + } + free(transcript); + } else { + fprintf(stderr, "unable to get transcript"); + } + fclose(file); + } else { + fprintf(stderr, "unable to open file for reading\n"); + } + + free(buf); + snd_pcm_close(pcm_handle); + snd_pcm_hw_params_free(params); + + return 0; } diff --git a/ai-conversation/deepgram_client.c b/ai-conversation/deepgram_client.c new file mode 100644 index 0000000..cb47243 --- /dev/null +++ b/ai-conversation/deepgram_client.c @@ -0,0 +1,168 @@ +#include "deepgram_client.h" +#include + +// Returns string that caller must free +static char *dg_find_transcript(char *json_response) { + printf("Parsing response: %s \n", json_response); + char *start = strstr(json_response, "\"transcript\":\""); + if (!start) + return NULL; + + start += 14; // Skip past "transcript":" + char *end = strchr(start, '"'); // Find closing quote + // Copy substring between start and end + size_t len = end - start; + char *result = malloc(len + 1); + strncpy(result, start, len); + result[len] = '\0'; + return result; +} + +char *dg_transcribe(FILE *audio_file) { + CURL *curl; + CURLcode res; + struct curl_slist *headers = NULL; + + // Initialize response buffer + struct curl_response_data response = {0}; + response.data = malloc(1); + response.size = 0; + + // Get file size + fseek(audio_file, 0, SEEK_END); + long file_size = ftell(audio_file); + fseek(audio_file, 0, SEEK_SET); + + struct curl_file_data data; + data.file = audio_file; + data.size = file_size; + + curl = curl_easy_init(); + if (curl) { + // Set headers for Deepgram API + char *deepgram_api_key = getenv("DEEPGRAM_API_KEY"); + if (!deepgram_api_key) { + fprintf(stderr, "DEEPGRAM_API_KEY environment variable not set\n"); + free(response.data); + curl_easy_cleanup(curl); + return NULL; + } + + char auth_header[256]; + snprintf(auth_header, sizeof(auth_header), "Authorization: Token %s", deepgram_api_key); + headers = curl_slist_append(headers, auth_header); + + curl_easy_setopt(curl, CURLOPT_URL, + "https://api.deepgram.com/v1/" + "listen?encoding=linear16&sample_rate=48000&channels=1"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_READFUNCTION, curl_read_callback_file); + curl_easy_setopt(curl, CURLOPT_READDATA, &data); + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, file_size); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_callback_response); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + free(response.data); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + return NULL; + } + + printf("done performing curl\n"); + + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } + + // Parse transcript from complete response + char *transcript = dg_find_transcript(response.data); + free(response.data); + + return transcript; +} + +struct curl_response_data *dg_text_to_speech(char *text) { + CURL *curl; + CURLcode res; + struct curl_slist *headers = NULL; + + // Create JSON payload - need to escape the text properly + // Worst case: every char needs escaping, so allocate 2x + overhead + size_t text_len = strlen(text); + size_t payload_size = text_len * 2 + 100; + char *json_payload = malloc(payload_size); + + // Simple approach: replace problematic chars with spaces + char *escaped_text = malloc(text_len + 1); + strcpy(escaped_text, text); + for (int i = 0; escaped_text[i]; i++) { + if (escaped_text[i] == '"' || escaped_text[i] == '\n' || + escaped_text[i] == '\r' || escaped_text[i] == '\t') { + escaped_text[i] = ' '; + } + } + + snprintf(json_payload, payload_size, + "{" + "\"text\":\"%s\"" + "}", + escaped_text); + + free(escaped_text); + + // Initialize response buffer + struct curl_response_data *response = + malloc(sizeof(struct curl_response_data)); + response->data = malloc(1); + response->size = 0; + + curl = curl_easy_init(); + if (curl) { + char *deepgram_api_key = getenv("DEEPGRAM_API_KEY"); + if (!deepgram_api_key) { + fprintf(stderr, "DEEPGRAM_API_KEY environment variable not set\n"); + free(response->data); + curl_easy_cleanup(curl); + return NULL; + } + + char auth_header[256]; + snprintf(auth_header, sizeof(auth_header), "Authorization: Token %s", deepgram_api_key); + headers = curl_slist_append(headers, auth_header); + headers = curl_slist_append(headers, "Content-Type: application/json"); + + curl_easy_setopt(curl, CURLOPT_URL, + "https://api.deepgram.com/v1/" + "speak?encoding=linear16&sample_rate=48000"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_callback_response); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, response); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + free(response->data); + free(response); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + return NULL; + } + + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } + + printf("received audio of %d length for tts\n", (int)response->size); + + // Debug: print first 100 chars to see if it's audio or error message + printf("First 100 chars: %.100s\n", response->data); + + free(json_payload); + return response; +} diff --git a/ai-conversation/deepgram_client.h b/ai-conversation/deepgram_client.h new file mode 100644 index 0000000..c31e563 --- /dev/null +++ b/ai-conversation/deepgram_client.h @@ -0,0 +1,21 @@ +#ifndef DEEPGRAMCLIENT_H +#define DEEPGRAMCLIENT_H + +#include +#include +#include +#include "utils.h" + +/* + * @param audio_file: must already be opened + * @returns char *: transcript string result. Call must free. + */ +char *dg_transcribe(FILE *audio_file); + +/* +* @returns response data. Caller must free the struct AND the data within it. +* TODO: should return custom struct with details about encoding, sample rate, etc. +*/ +struct curl_response_data *dg_text_to_speech(char *text); + +#endif // DEEPGRAMCLIENT_H diff --git a/ai-conversation/utils.c b/ai-conversation/utils.c new file mode 100644 index 0000000..debcff8 --- /dev/null +++ b/ai-conversation/utils.c @@ -0,0 +1,30 @@ +#include "utils.h" +#include + +size_t curl_read_callback_file(void *ptr, size_t size, size_t nmemb, + void *userdata) { + struct curl_file_data *data = (struct curl_file_data *)userdata; + size_t bytes_to_read = size * nmemb; + return fread(ptr, 1, bytes_to_read, data->file); +} + +size_t curl_write_callback_response(void *contents, size_t size, size_t nmemb, + void *userp) { + size_t total_size = size * nmemb; + struct curl_response_data *response = (struct curl_response_data *)userp; + + // Reallocate buffer to fit new data + response->data = realloc(response->data, response->size + total_size + 1); + if (response->data == NULL) { + return 0; // Error + } + + // Copy new data to buffer + memcpy(&response->data[response->size], contents, total_size); + response->size += total_size; + response->data[response->size] = '\0'; // Null terminate + + printf("read an extra %d bytes of data\n", (int)total_size); + + return total_size; +} diff --git a/ai-conversation/utils.h b/ai-conversation/utils.h new file mode 100644 index 0000000..bc546c4 --- /dev/null +++ b/ai-conversation/utils.h @@ -0,0 +1,24 @@ +#ifndef UTILS_H +#define UTILS_H + +#include +#include + +struct curl_file_data { + FILE *file; + size_t size; +}; + +struct curl_response_data { + char *data; + size_t size; +}; + +// This callback assumes the userdata is `struct file_data` +size_t curl_read_callback_file(void *ptr, size_t size, size_t nmemb, void *userdata); + +// This callback assumes that we are aggregating callback data into an allocated response_data struct +size_t curl_write_callback_response(void *contents, size_t size, size_t nmemb, + void *userp); + +#endif // UTILS_H -- 2.52.0 From 9ca1f8273c436a849584aee337ed540a6af6493e Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 27 Jul 2025 14:47:41 -0700 Subject: [PATCH 10/14] organize audio and intelligence modules --- ai-conversation/Makefile | 4 +- ai-conversation/{audio_capture.c => audio.c} | 166 ++----------------- ai-conversation/audio.h | 29 ++++ ai-conversation/audio_capture | Bin 24944 -> 0 bytes ai-conversation/intelligence.c | 86 ++++++++++ ai-conversation/intelligence.h | 9 + ai-conversation/main | Bin 0 -> 74592 bytes ai-conversation/main.c | 44 ++++- 8 files changed, 185 insertions(+), 153 deletions(-) rename ai-conversation/{audio_capture.c => audio.c} (59%) create mode 100644 ai-conversation/audio.h delete mode 100755 ai-conversation/audio_capture create mode 100644 ai-conversation/intelligence.c create mode 100644 ai-conversation/intelligence.h create mode 100755 ai-conversation/main diff --git a/ai-conversation/Makefile b/ai-conversation/Makefile index 176686d..196abb6 100644 --- a/ai-conversation/Makefile +++ b/ai-conversation/Makefile @@ -1,7 +1,7 @@ CC = gcc CFLAGS = -Wall -g -TARGET = audio_capture -SRC = audio_capture.c deepgram_client.c utils.c +TARGET = main +SRC = main.c deepgram_client.c utils.c intelligence.c audio.c LIBS = -lavdevice -lavformat -lavcodec -lavutil -lasound -lcurl $(TARGET): $(SRC) diff --git a/ai-conversation/audio_capture.c b/ai-conversation/audio.c similarity index 59% rename from ai-conversation/audio_capture.c rename to ai-conversation/audio.c index d672d20..99f8366 100644 --- a/ai-conversation/audio_capture.c +++ b/ai-conversation/audio.c @@ -1,113 +1,12 @@ -#include "deepgram_client.h" -#include "utils.h" -#include -#include -#include -#include -#include -#include +#include "audio.h" -// NOTE: find this via `arecord -l` -#define ALSA_MIC_HARDWARE_DEVICE "hw:3" -#define ALSA_SPEAKER_HARDWARE_DEVICE "default" - -void print_pcm_state(snd_pcm_t *pcm_handle) { +static void print_pcm_state(snd_pcm_t *pcm_handle) { snd_pcm_state_t state = snd_pcm_state(pcm_handle); const char *state_name = snd_pcm_state_name(state); printf("State of pcm handle: %s\n", state_name); } -char *find_ai_response(char *json_response) { - printf("Parsing response: %s \n", json_response); - char *start = strstr(json_response, "\"text\":\""); - if (!start) - return NULL; - - start += 8; // Skip past "text":" - char *end = strchr(start, '"'); - if (!end) - return NULL; - - size_t len = end - start; - char *result = malloc(len + 1); - strncpy(result, start, len); - result[len] = '\0'; - return result; -} - -char *ask_ai(char *question) { - CURL *curl; - CURLcode res; - struct curl_slist *headers = NULL; - - // Initialize response buffer - struct curl_response_data response = {0}; - response.data = malloc(1); - response.size = 0; - - // Create JSON payload - char json_payload[2048]; - snprintf(json_payload, sizeof(json_payload), - "{" - "\"model\":\"claude-3-haiku-20240307\"," - "\"max_tokens\":1024," - "\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]" - "}", - question); - - curl = curl_easy_init(); - if (curl) { - char *anthropic_api_key = getenv("ANTHROPIC_API_KEY"); - if (!anthropic_api_key) { - printf("ANTHROPIC_API_KEY not set\n"); - free(response.data); - curl_easy_cleanup(curl); - return NULL; - } - char auth_header[256]; - snprintf(auth_header, sizeof(auth_header), "x-api-key: %s", - anthropic_api_key); - headers = curl_slist_append(headers, "content-type: application/json"); - headers = curl_slist_append(headers, auth_header); - headers = curl_slist_append(headers, "anthropic-version: 2023-06-01"); - - curl_easy_setopt(curl, CURLOPT_URL, - "https://api.anthropic.com/v1/messages"); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); - curl_easy_setopt(curl, CURLOPT_POST, 1L); - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_callback_response); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); - - res = curl_easy_perform(curl); - if (res != CURLE_OK) { - fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); - free(response.data); - curl_slist_free_all(headers); - curl_easy_cleanup(curl); - return NULL; - } - - curl_slist_free_all(headers); - curl_easy_cleanup(curl); - } - - // Parse AI response from complete response - char *answer = find_ai_response(response.data); - free(response.data); - - return answer; -} - -/* count: how many bytes in the buffer - * returns int: 0 if success, -1 if failure - * NOTE: This function assumes that the audio data is using: - * - linear16 formatting (each sample is 16 bits) - * - one channel (1 sample) - * - with 48000 HZ sampling rate - * Hence, it's 2 bytes per frame. - */ -int play_pcm_data(char *buf, size_t byte_count) { +int audio_play(char *buf, size_t byte_count) { printf("going to play audio of %d bytes of data\n", (int)byte_count); snd_pcm_t *pcm_handle; @@ -192,7 +91,9 @@ int play_pcm_data(char *buf, size_t byte_count) { return 0; } -int main() { +char *audio_capture(uint seconds) { + char *output_file = "output.pcm"; + snd_pcm_t *pcm_handle = NULL; int err; @@ -200,7 +101,7 @@ int main() { SND_PCM_STREAM_CAPTURE, 0); if (err < 0) { printf("unable to open pcm device"); - return -1; + return NULL; } print_pcm_state(pcm_handle); @@ -213,14 +114,14 @@ int main() { if (err < 0) { snd_pcm_close(pcm_handle); printf("unable to get info of pcm device"); - return -1; + return NULL; } name = snd_pcm_info_get_name(pcm_info); if (err < 0) { printf("unable to get card info"); snd_pcm_close(pcm_handle); snd_pcm_info_free(pcm_info); - return -1; + return NULL; } printf("got pcm name: %s \n", name); @@ -231,14 +132,14 @@ int main() { err = snd_pcm_hw_params_malloc(¶ms); if (err < 0) { fprintf(stderr, "unable to mallow hw params"); - return -1; + return NULL; } err = snd_pcm_hw_params_any(pcm_handle, params); if (err < 0) { fprintf(stderr, "unable to find ranges for hw device"); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); - return -1; + return NULL; } uint period_size = 1024; @@ -259,7 +160,7 @@ int main() { fprintf(stderr, "unable to prepare pcm\n"); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); - return -1; + return NULL; } print_pcm_state(pcm_handle); @@ -269,12 +170,12 @@ int main() { fprintf(stderr, "unable to start pcm"); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); - return -1; + return NULL; } print_pcm_state(pcm_handle); - const uint seconds_to_capture = 5; + const uint seconds_to_capture = seconds; const uint periods_to_read = (samples_per_second * seconds_to_capture) / period_size; char *buf = malloc(period_size * channel_count * bytes_per_sample); @@ -285,10 +186,10 @@ int main() { * Each period is 2048 BYTES because each frame is 2 bytes. * Each frame is 2 bytes because of 1 channel, and 16 bit format */ - FILE *file = fopen("output.pcm", "wb"); + FILE *file = fopen(output_file, "wb"); if (file == NULL) { perror("Error opening file"); - return 1; + return NULL; } printf("======READING FRAMES for 5 seconds========\n"); while (snd_pcm_readi(pcm_handle, (void *)buf, period_size) > 0 && @@ -306,42 +207,9 @@ int main() { fclose(file); - // Reopen file for reading and transcribe - file = fopen("output.pcm", "rb"); - if (file != NULL) { - char *transcript = dg_transcribe(file); - if (transcript) { - printf("Transcript: %s\n", transcript); - - char *ai_answer = ask_ai(transcript); - if (ai_answer) { - printf("AI answer: %s\n", ai_answer); - - struct curl_response_data *tts_response = dg_text_to_speech(ai_answer); - int result = play_pcm_data(tts_response->data, tts_response->size); - if (result != 0) { - fprintf(stderr, "failure in playback"); - } - - free(tts_response->data); - free(tts_response); - - // we have this response data, and buffer within it. we can loop through - // it and write the pcm data within it to alsa - free(ai_answer); - } - free(transcript); - } else { - fprintf(stderr, "unable to get transcript"); - } - fclose(file); - } else { - fprintf(stderr, "unable to open file for reading\n"); - } - free(buf); snd_pcm_close(pcm_handle); snd_pcm_hw_params_free(params); - return 0; + return output_file; } diff --git a/ai-conversation/audio.h b/ai-conversation/audio.h new file mode 100644 index 0000000..4f86357 --- /dev/null +++ b/ai-conversation/audio.h @@ -0,0 +1,29 @@ +#ifndef AUDIOCAPTURE_H +#define AUDIOCAPTURE_H + +#include +#include +#include +#include +#include +#include + +// NOTE: find this via `arecord -l` +#define ALSA_MIC_HARDWARE_DEVICE "hw:3" +#define ALSA_SPEAKER_HARDWARE_DEVICE "default" + +// Captures audio for given seconds, and returns file name that we captured the +// audio into +char *audio_capture(uint seconds); + +/* count: how many bytes in the buffer + * returns int: 0 if success, -1 if failure + * NOTE: This function assumes that the audio data is using: + * - linear16 formatting (each sample is 16 bits) + * - one channel (1 sample) + * - with 48000 HZ sampling rate + * Hence, it's 2 bytes per frame. + */ +int audio_play(char *buf, size_t byte_count); + +#endif // AUDIOCAPTURE_H diff --git a/ai-conversation/audio_capture b/ai-conversation/audio_capture deleted file mode 100755 index 99d283e0d4c5fc496151a473d5710dd3b8549066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24944 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 +#include + +static char *find_ai_response(char *json_response) { + printf("Parsing response: %s \n", json_response); + char *start = strstr(json_response, "\"text\":\""); + if (!start) + return NULL; + + start += 8; // Skip past "text":" + char *end = strchr(start, '"'); + if (!end) + return NULL; + + size_t len = end - start; + char *result = malloc(len + 1); + strncpy(result, start, len); + result[len] = '\0'; + return result; +} + +char *ai_ask(char *question) { + CURL *curl; + CURLcode res; + struct curl_slist *headers = NULL; + + // Initialize response buffer + struct curl_response_data response = {0}; + response.data = malloc(1); + response.size = 0; + + // Create JSON payload + char json_payload[2048]; + snprintf(json_payload, sizeof(json_payload), + "{" + "\"model\":\"claude-3-haiku-20240307\"," + "\"max_tokens\":256," + "\"messages\":[{\"role\":\"user\",\"content\":\"Make it one sentence answer: %s\"}]" + "}", + question); + + curl = curl_easy_init(); + if (curl) { + char *anthropic_api_key = getenv("ANTHROPIC_API_KEY"); + if (!anthropic_api_key) { + printf("ANTHROPIC_API_KEY not set\n"); + free(response.data); + curl_easy_cleanup(curl); + return NULL; + } + char auth_header[256]; + snprintf(auth_header, sizeof(auth_header), "x-api-key: %s", + anthropic_api_key); + headers = curl_slist_append(headers, "content-type: application/json"); + headers = curl_slist_append(headers, auth_header); + headers = curl_slist_append(headers, "anthropic-version: 2023-06-01"); + + curl_easy_setopt(curl, CURLOPT_URL, + "https://api.anthropic.com/v1/messages"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + curl_easy_setopt(curl, CURLOPT_POST, 1L); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_payload); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_callback_response); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); + + res = curl_easy_perform(curl); + if (res != CURLE_OK) { + fprintf(stderr, "curl failed: %s\n", curl_easy_strerror(res)); + free(response.data); + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + return NULL; + } + + curl_slist_free_all(headers); + curl_easy_cleanup(curl); + } + + // Parse AI response from complete response + char *answer = find_ai_response(response.data); + free(response.data); + + return answer; +} diff --git a/ai-conversation/intelligence.h b/ai-conversation/intelligence.h new file mode 100644 index 0000000..7404e05 --- /dev/null +++ b/ai-conversation/intelligence.h @@ -0,0 +1,9 @@ +#ifndef INTELLIGENCE_H +#define INTELLIGENCE_H + +#include +#include + +char *ai_ask(char *question); + +#endif //INTELLIGENCE_H diff --git a/ai-conversation/main b/ai-conversation/main new file mode 100755 index 0000000000000000000000000000000000000000..cd90b24db9c0356492d304cdef244d3e20e7a55f GIT binary patch literal 74592 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 +#include -int main() { - printf("hello world \n"); +int main(int argc, char *argv[]) { + char *capture_audio_file = audio_capture(5); + + // Reopen file for reading and transcribe + FILE *file = fopen(capture_audio_file, "rb"); + if (file != NULL) { + char *transcript = dg_transcribe(file); + if (transcript) { + printf("Transcript: %s\n", transcript); + + char *ai_answer = ai_ask(transcript); + if (ai_answer) { + printf("AI answer: %s\n", ai_answer); + + struct curl_response_data *tts_response = dg_text_to_speech(ai_answer); + int result = audio_play(tts_response->data, tts_response->size); + if (result != 0) { + fprintf(stderr, "failure in playback"); + } + + free(tts_response->data); + free(tts_response); + + // we have this response data, and buffer within it. we can loop through + // it and write the pcm data within it to alsa + free(ai_answer); + } + free(transcript); + } else { + fprintf(stderr, "unable to get transcript"); + } + fclose(file); + } else { + fprintf(stderr, "unable to open file for reading\n"); + } + + return 0; } -- 2.52.0 From 8c1596aad88f3b229a6dc2074f6f5f48036816b9 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 27 Jul 2025 14:51:42 -0700 Subject: [PATCH 11/14] organize header files into include directory --- ai-conversation/.gitignore | 2 ++ ai-conversation/Makefile | 2 +- ai-conversation/{ => include}/audio.h | 0 .../{ => include}/deepgram_client.h | 0 ai-conversation/{ => include}/intelligence.h | 0 ai-conversation/{ => include}/utils.h | 0 ai-conversation/main | Bin 74592 -> 74608 bytes ai-conversation/output.pcm | Bin 0 -> 479232 bytes 8 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 ai-conversation/.gitignore rename ai-conversation/{ => include}/audio.h (100%) rename ai-conversation/{ => include}/deepgram_client.h (100%) rename ai-conversation/{ => include}/intelligence.h (100%) rename ai-conversation/{ => include}/utils.h (100%) create mode 100644 ai-conversation/output.pcm diff --git a/ai-conversation/.gitignore b/ai-conversation/.gitignore new file mode 100644 index 0000000..b9e0119 --- /dev/null +++ b/ai-conversation/.gitignore @@ -0,0 +1,2 @@ +main +.cache diff --git a/ai-conversation/Makefile b/ai-conversation/Makefile index 196abb6..669c6bc 100644 --- a/ai-conversation/Makefile +++ b/ai-conversation/Makefile @@ -1,5 +1,5 @@ CC = gcc -CFLAGS = -Wall -g +CFLAGS = -Wall -g -Iinclude TARGET = main SRC = main.c deepgram_client.c utils.c intelligence.c audio.c LIBS = -lavdevice -lavformat -lavcodec -lavutil -lasound -lcurl diff --git a/ai-conversation/audio.h b/ai-conversation/include/audio.h similarity index 100% rename from ai-conversation/audio.h rename to ai-conversation/include/audio.h diff --git a/ai-conversation/deepgram_client.h b/ai-conversation/include/deepgram_client.h similarity index 100% rename from ai-conversation/deepgram_client.h rename to ai-conversation/include/deepgram_client.h diff --git a/ai-conversation/intelligence.h b/ai-conversation/include/intelligence.h similarity index 100% rename from ai-conversation/intelligence.h rename to ai-conversation/include/intelligence.h diff --git a/ai-conversation/utils.h b/ai-conversation/include/utils.h similarity index 100% rename from ai-conversation/utils.h rename to ai-conversation/include/utils.h diff --git a/ai-conversation/main b/ai-conversation/main index cd90b24db9c0356492d304cdef244d3e20e7a55f..b6701db43745da6b19869ddd44f41ef6ec65f462 100755 GIT binary patch delta 359 zcmaEGjOD{ImI)e+1sgTXnMG{0XNXUzmdeaH&};MEI<-dbbW>fGmI)e+2^%%bnMKl_j|g5qG)>Ay_Jr$indPDZ!Eb9fZ(-KTV07MmKl_;& zqw?lsO|>kH?3-QMjYJtQZ!Vw1Bg$#d$iTqLz`;;AdHyy<-Y5nJh8!TC1H@Y<@7ri8 z#lQ(vz$OSJ7$iZ2Hi)nSiA@&Vw3G7=6GVF{P`kwB^IKVYJ%I9XV-hrP#3DDAa_GFp5105#SjWq#E51o*dd#xw|~uI)SfP=#AwdAZn~!uqdnt`>75{I X#`KdQ>cn(TWk!3Z9}?5Olo{0kDRNZv diff --git a/ai-conversation/output.pcm b/ai-conversation/output.pcm new file mode 100644 index 0000000000000000000000000000000000000000..77f6d1732cf5bc6607bd8052f896a1c0f4994711 GIT binary patch literal 479232 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�%;ep^AlvvbzSFd^vt{2 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 M&r5z#sB*H=9~odZNdN!< literal 0 HcmV?d00001 -- 2.52.0 From 060bbfb2c44143c4f2a522c035aba529c5cc80d0 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 27 Jul 2025 14:58:00 -0700 Subject: [PATCH 12/14] docs: add readme --- ai-conversation/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/ai-conversation/README.md b/ai-conversation/README.md index d3cf286..b85839e 100644 --- a/ai-conversation/README.md +++ b/ai-conversation/README.md @@ -1,5 +1,28 @@ # Conversation This proof of concept is for implementing conversational loop with AI at a low level with raw C. +## How it works +This simple program: +1. Captures audio samples for x seconds into a local file using alsa +2. Sends the raw pcm data to Deepgram STT API for transcription +3. Uses the transcript to call Anthropic to get an assistant's response +4. Converts Anthropic's response to audio using Deepgram's TTS +5. Plays back the generated audio from Deepgram using alsa +6. Quits. _There is no conversational loop at the time of this writing._ + ## Requirements Platform: the project is meant for Linux, specifically Ubuntu desktop. + +* libcurl +* build-essential +* libasound2-dev + +_See more deps in Makefile `install-deps` command._ + +## Getting started +1. Add `DEEPGRAM_API_KEY` and `ANTHROPIC_API_KEY` to `.bashrc` as environment variables. +2. Build & run +```sh +make +./main +``` -- 2.52.0 From 12a8543564bb637cced5decfd8eb9ee9b2bdae94 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 27 Jul 2025 15:00:16 -0700 Subject: [PATCH 13/14] docs: explain future work --- ai-conversation/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ai-conversation/README.md b/ai-conversation/README.md index b85839e..c0e5470 100644 --- a/ai-conversation/README.md +++ b/ai-conversation/README.md @@ -26,3 +26,6 @@ _See more deps in Makefile `install-deps` command._ make ./main ``` + +## Future work +Add an event loop, maybe add multi-threading, so that we can interrupt the AI, ask follow-up questions, and make it sound like a back and forth conversation. -- 2.52.0 From 70a36a329c77172a57e0940b6b19adcc8fb0a211 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 27 Jul 2025 15:02:41 -0700 Subject: [PATCH 14/14] docs: add disclaimer about hardcoded audio params --- ai-conversation/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ai-conversation/README.md b/ai-conversation/README.md index c0e5470..d647803 100644 --- a/ai-conversation/README.md +++ b/ai-conversation/README.md @@ -11,7 +11,7 @@ This simple program: 6. Quits. _There is no conversational loop at the time of this writing._ ## Requirements -Platform: the project is meant for Linux, specifically Ubuntu desktop. +Platform: the project is meant for Linux x64. It was successfully run on arch linux, with no guarantees otherwise. * libcurl * build-essential @@ -27,5 +27,8 @@ make ./main ``` +## Audio configuration +Please see the `audio.h` and `audio.c` as the params for alsa were hardcoded based on my local arch linux x64 machine. You may have to adjust it based on your setup (e.g. you may have a mic with 2 channels/stereo, which would change the size of each frame). + ## Future work Add an event loop, maybe add multi-threading, so that we can interrupt the AI, ask follow-up questions, and make it sound like a back and forth conversation. -- 2.52.0

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