Activity

Bowl

I made the config file parsing
It utilizes a crap ton of functions to move through the config file and tokenize it, then it turns those tokens into an struct (an object in C) that can be referenced later to find out what options they set. I then wrote up some documentation that took about half an hour to tell the user how to use the config file

Attachment
0
Bowl

WHOOO WHEEE THIS ONE WAS REALLY FUN

I made detection for a config file. (it no longer runs without one :fear:)
I added a command line arg (-C/–config) that allows the user to generate an example config file at %APPDATA%\subrub\subrub.conf or ~/.config/subrub/subrub.conf

not much more to say, it was just really really fun

0
Bowl

THE MAIN FUNCTIONALITY IS DONE

I learned how to use cJSON to parse the json that is returned from ai.hackclub.com. I also then used a nice library called espeak-ng for the TTS and it sounds robotic great. Looking to add extra features next

0
Bowl

accidentally leaked my api key in the last devlog so here we go again.

I fixed the bug where ai.hackclub.com would return a forbidden error [https 400]. Turns out I forgot to add the headers to the cURL command. I then ran into another error where ai.hackclub.com would return an internal server error [https 500]. That was caused by my forgetting to sanitize the user input to make it JSON friendly. Now i am getting a bug where it seems that the transcription is not being sent to the ai

1

Comments

Bowl
Bowl 11 days ago

Turns out the reason is seems like the transcription isnt working is because my microphone isnt working. I LOVE LINUX SO MUCH :yayayayay:

Bowl

I have begun implementing libcurl to send the prompt and query to ai.hackclub.com, however I am running into a forbidden for some reason. I need to debug that. Also spent a bit of time trying to understand my code again because its been a while since I coded

Attachment
0
Bowl

I spent some time cleaning up the recording/transcribing set up, and I created a prompt that gets uploaded to the LLM of choice for the response to the users query to prevent messing with the LLM.

Attachment
0
Bowl

I have decided to not use an AI for STT/TTS because forcing the user to set up an API key and pay seems like a really annoying thing to go through during onboarding. I deleted the code that uploads the recording to whisper and instead started working on implementing the pocketsphinx library for transcription. My plan for TTS will be to use speech dispatcher, which should be on most systems. I also changed the readme a bit to reflect the current capabilities of the program

Attachment
0
Bowl

Figured out how to upload file to whisper-1 however it would appear that some of the information I was using was outdated and the whisper api is no longer free to use. I have two options from here, I can either self host it on my laptop that is already lagging running vscode, a browser, kitty and slack, or I can find another ai/api to use for speech to text. I will likely go with the latter solution because it would also be more portable.

1

Comments

Bowl
Bowl 22 days ago

idk why half the video is cutoff

Bowl

Spent about 30 minutes getting command line argument detection to work. So far it only include -h/–help which displays some placeholder text for now, and -v/–verbose that prints extra information during the execution. I also spent a good while getting OS detection to work, although since I am using miniaudio as my audio recording and likely player, I likely wont need it, unless I want to send notification when its running which is something I want to implement once the core functionality is down. I then spent the rest of the 2 hours figuring out how to record audio to a file. ChatGPT was a great boon during this, I still only half understand the code but hopefully by the time this is over I will fully understand the ins and outs of recording audio. Next I need to send the audio to whisper, which turns out does not have a C library, but instead a python one, so we’ll have to figure that out manually.

0