이 문서에서는 Gemini Live API를 사용할 때 발생할 수 있는 문제의 문제 해결 단계를 제공합니다.
연결이 예기치 않게 끊김
세션 연결이 예기치 않게 끊어지는 경우 토큰 한도, 세션 연결 시간 초과 또는 네트워크 문제 때문일 수 있습니다.
동작
오류 코드 1000 또는 1006로 세션 연결이 끊어졌습니다.
가능한 이유
- 컨텍스트 윈도우 압축이 사용 설정되어 있지 않고 컨텍스트 토큰이 세션의 컨텍스트 토큰 한도 (최대 128,000개)를 초과합니다.
- 세션 재개 로직이 구현되지 않았거나 재개 로직이 올바르게 구현되지 않았습니다.
- 인터넷 연결이 불안정합니다.
이유 및 해결 방법
토큰이 세션의 컨텍스트 토큰 한도를 초과함: 세션의 컨텍스트 토큰 한도를 초과하지 않으려면 컨텍스트 압축을 활성화하세요. 모델이 채팅 기록의 이전 부분을 간헐적으로 삭제하므로 대화 품질에 영향을 미칠 수 있습니다.
세션 연결이 10분 후에 만료됨: 더 긴 상호작용을 허용하도록 세션 재개를 관리하세요. 자세한 내용은 세션 재개 권장사항을 참고하세요.
인터넷 연결이 불안정함: 인터넷 연결 상태를 확인하세요. 안정성이 변동되면 연결 문제가 발생할 수 있습니다.
모델이 사용자를 이해하지 못함
모델이 내 입력을 이해하지 못하는 것 같으면 오디오가 올바르게 포맷되었는지 확인하고 마이크 품질과 배경 소음을 고려하세요.
동작
모델이 관련 없는 정보로 대답하거나, 잘못된 정보로 대답하거나, 사용자에게 반복을 요청합니다.
가능한 이유
- 입력 오디오 형식이 올바르지 않습니다.
- 마이크 품질이 좋지 않습니다.
- 배경 소음이 너무 큽니다.
이유 및 해결 방법
입력 오디오 형식이 올바르지 않음: 입력 오디오가 16kHz 샘플링 레이트와 단일 모노 채널이 있는 little-endian 16비트 PCM 형식을 사용하는지 확인합니다.
마이크 품질이 좋지 않음: 짧은 오디오를 녹음하고 재생하여 마이크 품질을 테스트합니다. 마이크 품질이 좋지 않으면 품질이 더 좋은 마이크를 사용해 보세요.
배경 소음이 너무 큼: 짧은 오디오를 녹음하고 재생하여 배경 소음 수준을 테스트합니다. 배경 소음 수준이 너무 높으면 마이크를 사용자에게 더 가까이 이동하거나 주변 소음 제거 기능이 더 나은 마이크를 사용해 보세요.
모델이 응답하지 않음
모델에서 응답을 받지 못하는 경우 음성 활동 감지 옵션과 WebSocket 연결을 확인하세요.
동작
모델에서 응답이 없습니다.
가능한 이유
- VAD 설정이 올바르게 설정되지 않았습니다.
- WebSocket 연결이 중단되었습니다.
이유 및 해결 방법
VAD가 잘못 설정됨: 사용자가 VAD를 사용 중지했습니다. 이 경우 모델은 사용자의 음성을 계속 기다리며 사용자에게 응답하지 않습니다. VAD가 사용 중지된 경우
ActivityStart및ActivityEnd이벤트를 모델에 전송해야 합니다.WebSocket 연결이 중단됨: WebSocket 연결이 중단되면 클라이언트와 서버 간에 통신이 이루어지지 않습니다. WebSocket 연결 상태를 확인하고 올바르게 설정되었는지 확인합니다.
모델을 중단할 수 없음
모델이 말하는 동안 모델을 중단할 수 없는 경우 재생 버퍼와 스트리밍 오디오를 올바르게 처리하고 있는지 확인하세요.
동작
사용자의 방해 없이 모델이 계속 말합니다.
가능한 이유
- 재생 버퍼를 플러시할 수 없습니다.
- Gemini Live API로 오디오를 스트리밍할 수 없습니다.
- 맞춤 VAD가 올바르게 구현되지 않았습니다.
이유 및 해결 방법
재생 버퍼 플러시 실패: 클라이언트는 모델에서 인터럽트 신호를 수신하면 즉시 재생 버퍼를 플러시해야 합니다. 그렇지 않으면 모델이 계속 말을 합니다.
Gemini Live API로 오디오를 스트리밍하지 못함: 클라이언트는 지연 시간을 최소화하기 위해 20ms~40ms 사이의 청크로 Gemini Live API에 오디오를 스트리밍해야 합니다. 클라이언트가 Gemini Live API로 오디오를 스트리밍하지 못하면 모델은 클라이언트에 인터럽트 신호를 전송하지 않습니다.
맞춤 VAD가 올바르게 구현되지 않음: 맞춤 VAD가 음성 시작을 인식하지 못하거나 클라이언트가 모델에
ActivityStart신호를 전송하지 못하면 모델이 클라이언트에 인터럽트 신호를 전송하지 않습니다.
알려진 제한사항
Gemini Live API에는 다음과 같은 제한사항이 적용됩니다. 각 항목에는 가능한 경우 완화 조치가 포함됩니다.
우선순위 사용한 만큼만 지불은 지원되지 않습니다.
Gemini Live API는 우선순위 사용한 만큼만 지불을 소비 옵션으로 지원하지 않습니다.
한 턴 동안 음성을 변경할 수 있습니다.
드물지만 모델이 voice_name 필드에 설정한 음성이 아닌 다른 음성으로 대답하는 경우가 있습니다. 변경사항은 단일 턴으로 제한되며 다음 턴에서는 구성된 음성이 다시 사용됩니다. 구성 변경이 필요하지 않습니다.
긴 턴 동안 말하기 속도가 빨라질 수 있음
모델이 길고 끊김 없는 음성 응답을 생성하면 말하기 속도가 점차 빨라질 수 있습니다. 이 동작은 60초를 초과하는 단일 턴에서 가장 두드러집니다. 일정한 페이스를 유지하려면 다음 방법을 사용하세요.
긴 출력 세분화: 한 번에 긴 텍스트 블록을 읽도록 모델에 프롬프트를 표시하지 마세요. 긴 대답은 100단어 미만 또는 50초 미만의 음성 오디오로 나누세요.
대화형 턴 테이킹 사용: 세그먼트 간에 사용자에게 제어권을 반환하는 대화형 대화 패턴을 채택합니다.
모델이 예기치 않게 언어를 전환할 수 있음
모델에서 사용자가 구성된 언어 이외의 언어를 사용하고 있다고 판단하면 해당 언어로 응답할 수 있습니다. 의도치 않은 전환의 가능성을 줄이려면 language_code 필드를 설정하고 시스템 안내에 예상 언어를 명시하여 언어 힌트를 제공하세요. 자세한 내용은 언어 및 음성 설정을 참고하세요.
숫자 시퀀스가 일관되지 않게 반복될 수 있음
사용자가 전화번호, 신용카드 번호, 계좌 번호와 같은 개별 숫자의 시퀀스를 말하면 모델이 잘못된 숫자나 누락된 숫자를 포함하여 시퀀스를 반복할 수 있습니다. 이러한 오류를 줄이려면 모델이 한 번에 한 자리씩 시퀀스를 다시 읽고 숫자가 명확하지 않으면 사용자에게 시퀀스를 천천히 반복하도록 요청하는 시스템 지침을 추가하세요.