목록Coding (72)
이우의 개발일지

C++에서 TTS/ STT 기능 구현하기 현재 연구하는 모듈 중 C++ 환경에서 코드의 유기성을 위해 파이썬을 사용하지 않고 STT(Speech to Text)와 TTS(Text to Speech) 기능을 구현할려 했다. 방법은 오디오 데이터를 Base 64로 인코딩을 한 후 libcurl 라이브러리를 이용해서 Google Cloud API에 HTTP 요청을 할려했다. 하지만, 이 과정에서 파이썬은 간단하게 라이브러리 함수를 사용하면 모든게 편하지만 C++에서 할려면 인증, 데이터 인코딩, 요청 형식 등의 세부 설정을 해줘야했다... json 파일을 만들어서 Google Cloud에 인증을 Key와 ID 등을 다 입력하고, curl을 통해 HTTP 요청을 했지만..... 실패...! 결론적으로는 403..

Chat gpt API를 C++ 이용일단 C++에서는 라이브러리에서는 API 라이브러리가 잘 안되어있기 때문에 직접적으로 쓰기 어렵습니다.(curl 라이브러리를 써서 HTTP 요청하는 방법도 있긴한데... 복잡합니다..)따라서, 나는 C++에서 만든 텍스트를 가지고 그 텍스트를 GPT 실행 python 파일을 실행시켜 값을 다시 가져오는 식으로 진행하였습니다. 즉, C++ 코드 중간에 python 파일을 개별로 실행시키고 그 값을 받아와 C++안에서 다시 처리하는 식입니다. C++ GPT 실행 코드 std::string execGPTScript(const std::string& prompt) { std::string command = "python3 gpt_script.py \"" + promp..

RAII (Resource Acquisition Is Initialization)이란? 자원의 안전한 사용을 위해 객체가 쓰이는 스코프를 벗어나면 자원을 자동으로 해제해주는 기법입니다. 즉, 변수가 선언되거나 파일을 열 때 자원이 할당 되고 해당 스코프에서 벗어나면 자동으로 해제되는 기법입니다. 보통 자원 획득이 필요한 경우, 자원 획득을 담당하는 클래스를 만들어 그 클래스의 생성자에서만 자원 획득을 하는 것입니다. (프로그램을 개발하다보면 동적 메모리 할당, 파일 열기, 락 등 자원 획득을 많이 하는데, 이러한 자원 획득을 담당하는 클래스를 만들어 그 클래스의 생성자에서만 자원 획득을 하는 것입니다.)RAII의 핵심 원리생성과 동시에 리소스 획득: 객체가 생성될 때 필요한 리소스를 획득하고, 생성자..