
음성 기반 애플리케이션은 OpenAI를 통해 공상과학 개념에서 배포 가능한 솔루션으로 전환되었습니다.'s 최신 도구. 이 가이드는 실제 구현 과정을 안내합니다. Open을 사용하는 다국어 음성 에이전트AI 에이전트 SDK인간과 같은 상호작용 리듬을 유지하면서 여러 언어 간의 음성을 처리하는 시스템을 만드는 방법을 보여줍니다.
무엇이 열려 있습니까?AI 에이전트 SDK?
엽니다AI Agent SDK는 개발자에게 프레임워크를 제공합니다. AI 음성을 포함한 다양한 입력을 처리하고 응답할 수 있는 에이전트. SDK는 GPT-4o 실시간 미리보기 모델을 지원하여 실시간 대화 기능 그것의 진보된 것을 통해 NLP 자연 언어 처리 (NLP) 특징.
SDK에는 특히 음성 기반 상호작용을 원활하게 처리하도록 설계된 구성 요소인 VoicePipeline이 포함되어 있습니다. 이 파이프라인은 음성을 텍스트로 변환하고, 정보를 처리하고, 자연스럽게 들리는 응답을 생성하는 복잡한 프로세스를 관리합니다.
현대 음성 에이전트의 핵심 아키텍처

1. 음성 처리 파이프라인
OpenAI's VoicePipeline은 오디오 캡처, 언어 처리, 응답 생성의 세 가지 동기화된 단계로 작동합니다. 시스템은 먼저 원시 오디오 신호를 텍스트로 변환하는 것으로 시작합니다. 음성 - 텍스트 GPT-4o Transcribe와 같은 모델. 이 텍스트 입력은 맥락, 의도 및 감정적 톤을 분석하는 언어 모델로 공급됩니다. 마지막으로, 텍스트-음성 구성 요소는 대화 흐름을 유지하면서 자연스럽게 들리는 음성 응답을 생성합니다.
2. 멀티모달 vs 체인 아키텍처
음성 에이전트 개발에는 두 가지 뚜렷한 접근 방식이 있습니다.
직접 오디오 처리(멀티모달)
GPT-4o-realtime-preview는 텍스트 변환 없이 오디오를 처리하여 200-300ms 응답을 제공합니다. 이 아키텍처는 피치와 일시 정지를 포함한 음성 뉘앙스를 포착하여 감정 인식 고객 상호작용 중에 네이티브 오디오 처리를 유지하여 답변합니다.
텍스트 중심 처리(체인)
기존의 파이프라인은 분리되어 있습니다 전사, 분석 및 합성 단계. 이 모듈식 접근 방식은 헬스케어 분류와 같은 규정 준수에 민감한 애플리케이션에 대한 자세한 로깅을 가능하게 합니다. 개발자는 작업별 최적화된 모델을 사용하는 동안 각 단계를 정확하게 제어할 수 있습니다.
다국어 음성 에이전트 가이드: 코드에서 대화까지
Open을 사용하여 음성 에이전트 만들기AI Agent SDK에는 특정 환경 구성이 필요합니다. 음성 기능을 갖춘 기능적 개발 환경을 구축하려면 다음 단계를 따르세요.
1단계. Python 및 가상 환경 설정
Python 3.8+가 설치되어 있는지 확인하세요. 다음을 확인하세요.
python --version
새로운 설치의 경우 Python을 다음에서 다운로드하세요. python.org.
a. 가상 환경 만들기
충돌을 피하기 위해 종속성을 분리하세요:
p-ython -m venv voice_agent_env
b. 활성화:
- 리눅스/맥OS:
source voice_agent_env/bin/activate
- Windows:
voice_agent_env\Scripts\activate
c. 음성 관련 종속성 설치
오픈 설치AI 음성 확장 및 오디오 라이브러리가 포함된 에이전트 SDK:
pip install 'openai-agents[voice]' numpy sounddevice scipy python-dotenv
d. Open 구성AI API 키: 환경 변수를 사용하여 API 키를 안전하게 저장하세요.
- 만들기
.env파일 :
echo "OPENAI_API_KEY=your-api-key-here" > .env
- 예제 저장소 복제(선택 사항):
작업을 빠르게 진행하려면 공식 예제를 복제할 수 있습니다. 엽니다AI 에이전트 SDK GitHub 저장소.
git clone https://github.com/openai/openai-agents-python.git
cd openai-agents-python/examples/voice/static
2단계. 다국어 에이전트 구축
주요 구성 요소는 다음과 같습니다.
- 언어별 에이전트 다양한 언어(스페인어, 힌디어)
- 초기 상호작용을 처리하는 기본 에이전트
- 추가 기능(예: 날씨 정보)을 위한 기능 도구
여기에's 코드 구조의 단순화된 버전:
a. 에이전트 정의
지원하려는 각 언어에 대해 다른 에이전트 인스턴스를 만듭니다. 예를 들어 스페인어 에이전트와 힌디어 에이전트는 해당 언어로 된 지침으로 만들 수 있습니다.
from agents import Agent
from agents.extensions.handoff_prompt import prompt_with_handoff_instructions
spanish_agent = Agent(
name="Spanish",
handoff_description="A Spanish speaking agent.",
instructions=prompt_with_handoff_instructions(
"You're speaking to a human, so be polite and concise. Speak in Spanish."
),
model="gpt-4o-mini",
)
hindi_agent = Agent(
name="Hindi",
handoff_description="A Hindi speaking agent.",
instructions=prompt_with_handoff_instructions(
"You're speaking to a human, so be polite and concise. Speak in Hindi."
),
model="gpt-4o-mini",
)
사용자의 말에서 언어를 감지하고 필요한 경우 적절한 에이전트에게 위임하는 기본 비서를 만들어 보세요.
agent = Agent(
name="Assistant",
instructions=prompt_with_handoff_instructions(
"You're speaking to a human, so be polite and concise. If the user speaks in Spanish, hand off to the Spanish agent. If the user speaks in Hindi, hand off to the Hindi agent."
),
model="gpt-4o-mini",
handoffs=[spanish_agent, hindi_agent],
)
b. 도구 추가(선택 사항)
예를 들어, 에이전트가 호출할 수 있는 간단한 날씨 도구를 추가할 수 있습니다.
import random
from agents import function_tool
@function_tool
def get_weather(city: str) -> str:
choices = ["sunny", "cloudy", "rainy", "snowy"]
return f"The weather in {city} is {random.choice(choices)}."
agent.tools.append(get_weather)
3단계. 음성 파이프라인 설정

SDK의 음성 파이프라인은 세 가지 구성 요소를 결합합니다.
- 음성-텍스트(STT): 오디오 입력을 텍스트로 변환합니다.
- 에이전트 워크플로: 텍스트를 처리합니다(언어 감지 및 도구 호출 포함).
- 텍스트 음성 변환(TTS): 에이전트를 변환합니다's 텍스트 답장을 다시 오디오로 변환합니다.
여기에's 단순화된 예:
import asyncio
import numpy as np
import sounddevice as sd
from agents.voice import AudioInput, SingleAgentVoiceWorkflow, VoicePipeline
async def main():
# Create the voice pipeline with your primary agent
pipeline = VoicePipeline(workflow=SingleAgentVoiceWorkflow(agent))
# For demonstration, we'll simulate 3 seconds of audio input with silence.
buffer = np.zeros(24000 * 3, dtype=np.int16)
audio_input = AudioInput(buffer=buffer)
# Run the pipeline
result = await pipeline.run(audio_input)
# Set up the audio player (using sounddevice)
player = sd.OutputStream(samplerate=24000, channels=1, dtype=np.int16)
player.start()
# Stream and play audio events from the agent's output
async for event in result.stream():
if event.type == "voice_stream_event_audio":
player.write(event.data)
if __name__ == "__main__":
asyncio.run(main())
실제 응용 프로그램에서는 침묵 대신 실시간 마이크 입력을 포착하고 에이전트는 실시간으로 언어를 감지합니다.
4단계: 음성 에이전트 실행
python -m examples.voice.static.main
음성 에이전트 개발을 위한 모범 사례
Open을 사용하여 음성 에이전트를 구축할 때AI 에이전트 SDK의 경우 다음과 같은 모범 사례를 고려하세요.
오늘 다국어 음성 에이전트로 선두를 차지하세요
Open을 사용하여 음성 에이전트 구축AI Agent SDK의 접근성이 크게 향상되었습니다. 이제 개발자는 특정 요구 사항에 따라 멀티모달 또는 체인 아키텍처 중에서 선택하고, VoicePipeline을 설정하여 SDK가 처리하도록 할 수 있습니다. 복잡한 처리.
대화 흐름의 질을 위해서는 멀티모달 방식이 가장 효과적입니다. 구조와 제어를 위해서는 체인 방식이 더 적합합니다. 이 기술은 계속해서 발전하여 음성 기반 애플리케이션에 대한 새로운 가능성을 열어줍니다.

