전체 글

AI

OpenAI Realtime API란?

Realtime api가 없는 음성 채팅 방식의 구조 사용자가 음성을 모두 녹음한다.녹음이 끝난 뒤 서버로 음성 파일을 업로드한다.서버는 음성을 텍스트로 변환(STT)하고 이를 분석해 응답을 생성한다.응답 텍스트를 다시 음성(TTS)으로 변환해 사용자에게 전달한다.복잡해 보이지 않지만, 이 방식은 모든 데이터가 처리 단계를 거친 뒤에야 응답할 수 있다는 구조적인 한계를 가지고 있다. 1. 높은 지연 시간녹음, 업로드, 처리, 음성 합성이라는 단계를 거치다 보니 실시간 반응은 어렵다. 2. 실시간 피드백 부재사용자가 말을 끝내기 전까지는 아무런 반응을 줄 수 없으며, 대화 중 끼어들기나 중간 피드백이 불가능하다. 3. 자연스러운 대화 어려움억양, 강세, 감정 표현 등 사람처럼 말하기 위한 표현력이 부족하고..

AI

OpenAI Realtime API 새로운 request body payload와 새로운 모델의 등장

OpenAI Realtime API 업데이트: 세션 생성 파라미터의 변화가 생겼습니다!(사실 업데이트된지는 한 달 정도 됨..)다음과 같이 OpenAI에서 새로운 audio 모델을 발표했다는 메일을 받게되었다. 기존 realtime api를 사용했을 때 stt는 whisper-1모델을 사용했었는데.. 특정한 뉴스보도 내용 등이 text로 변환되는 고질적인 문제가 있어 사내에서 음성채팅을 개발할 때 어려움을 많이 겪었었다... 새로운 모델이 나오며 realtime api도 몇가지 추가된 payload가 있어 같이 설명해보려한다. STT: gpt-4o 모델 지원wow! 이제는 stt 모델이 새롭게 나왔다! whisper-1 안 써도된다!!gpt-4o-transcribegpt-4o-transcribe- 해당 ..

Problem&Solution

Safari에서 일본어 입력 시 Enter가 form submit 되는 이슈 해결기

웹 프로젝트에서 입력 폼을 만들다 보면 다양한 언어 환경과 브라우저 동작을 고려해야 합니다. 최근 일본어를 입력하는 Safari 유저에게서 다음과 같은 문제가 발생했습니다.문제: 일본어 입력 도중 Enter 키를 누르면 한자 변환 확정이 아니라 폼이 제출(submit) 되어버리는 현상이 문제는 Chrome, Firefox 등 다른 브라우저에서는 발생하지 않았기 때문에 원인을 파악하고 해결하는 데 꽤 시간이 걸렸습니다. 이 글에서는 문제 상황, 원인 분석, 그리고 해결 과정까지 모두 공유해보겠습니다. 문제 상황 재현⚙️ 환경브라우저: Safari (macOS, iOS)입력 언어: 일본어 Send ⛔ 문제가 되는 행동Safari에서 일본어를 입력할 때, 예를 들어 こんにちは를 한자로 바꾸기 위해 입력 ..

Problem&Solution

브라우저에서 비밀번호로 인식하게 만들기

기존 프로젝트 디자인 상 비밀번호 입력하는 란이 아래와 같이 4개로 분할되어 있었다.  따라서 이에 맞춰 4개의 input칸을 만들었다. {maskedValues.map((value, index) => ( handleChange(index, e.target.value)} onKeyDown={e => handleKeyDown(index, e)} />))} 이렇게 하다 보니 브라우저 단에서 비밀번호로 인식을 못하여 비밀번호 저장 팝업이 뜨지 않는 문제가 생겼다.  이유는 브라우저는 주로 input 태그에서 type="password"로 설정된 필드를 찾아 비밀번호 필드로 인식하지만 단순히 type="password"만으로는 충분하지 않을 수 있다는 것.. input 필드에 autocomplete="cur..

*히아*
끄적끄적 개발기록