
Le applicazioni vocali sono passate da concetti di fantascienza a soluzioni implementabili con OpenAI's strumenti più recenti. Questa guida illustra l'implementazione pratica di agenti vocali multilingue che utilizzano OpenAI SDK dell'agente, dimostrando come creare sistemi che elaborano il parlato in diverse lingue mantenendo ritmi di interazione simili a quelli umani.
Cosa è apertoAI SDK dell'agente?
ApriAI Agent SDK fornisce agli sviluppatori un framework per creare AI agenti in grado di elaborare e rispondere a vari input, inclusa la voce. L'SDK supporta il modello GPT-4o-realtime-preview, che consente capacità di conversazione in tempo reale attraverso il suo avanzato Elaborazione del linguaggio naturale (PNL) caratteristiche.
L'SDK include specificamente VoicePipeline, un componente progettato per gestire in modo fluido le interazioni basate sulla voce. Questa pipeline gestisce il complesso processo di conversione del parlato in testo, elaborazione delle informazioni e generazione di risposte dal suono naturale.
Architettura di base degli agenti vocali moderni

1. La pipeline di elaborazione vocale
OpenAI's VoicePipeline opera attraverso tre fasi sincronizzate: acquisizione audio, elaborazione del linguaggio e generazione della risposta. Il sistema inizia convertendo i segnali audio grezzi in testo utilizzando sintesi vocale modelli come GPT-4o Transcribe. Questo input testuale alimenta quindi modelli linguistici che analizzano contesto, intento e tono emotivo. Infine, i componenti text-to-speech generano risposte vocali dal suono naturale mantenendo il flusso della conversazione.
2. Architetture multimodali vs. architetture concatenate
Nello sviluppo degli agenti vocali prevalgono due approcci distinti:
Elaborazione audio diretta (multimodale)
GPT-4o-realtime-preview elabora l'audio senza conversione del testo, offrendo risposte di 200-300 ms. Questa architettura cattura le sfumature vocali, tra cui tono e pause, consentendo consapevole delle emozioni risponde durante le interazioni con i clienti mantenendo l'elaborazione audio nativa per tutta la durata.
Elaborazione incentrata sul testo (concatenata)
Le condotte tradizionali si separano trascrizione, analisi e fasi di sintesi. Questo approccio modulare consente la registrazione dettagliata per applicazioni sensibili alla conformità come il triage sanitario. Gli sviluppatori ottengono un controllo preciso su ogni fase utilizzando modelli ottimizzati specifici per attività.
Guida per agenti vocali multilingue: dal codice alla conversazione
Creazione di agenti vocali con OpenAI L'Agent SDK richiede configurazioni ambientali specifiche. Seguire questi passaggi per creare un ambiente di sviluppo funzionale con funzionalità vocali.
Passaggio 1. Configurazione di Python e ambiente virtuale
Assicurati che Python 3.8+ sia installato. Verifica con:
python --version
Per le nuove installazioni, scaricare Python da python.org.
a. Creare un ambiente virtuale
Isolare le dipendenze per evitare conflitti:
p-ython -m venv voice_agent_env
b. Attivazione:
- Linux/macOS:
source voice_agent_env/bin/activate
- Windows:
voice_agent_env\Scripts\activate
c. Installare le dipendenze specifiche della voce
Installare l'OpenAI SDK per agenti con estensioni vocali e librerie audio:
pip install 'openai-agents[voice]' numpy sounddevice scipy python-dotenv
d. Configurare OpenAI API Key: Memorizza la tua chiave API in modo sicuro utilizzando le variabili ambientali:
- Creare un
.envfile:
echo "OPENAI_API_KEY=your-api-key-here" > .env
- Clona il repository di esempio (facoltativo):
Per velocizzare le cose, potresti clonare l'esempio ufficiale da ApriAI Repository GitHub dell'SDK degli agenti.
git clone https://github.com/openai/openai-agents-python.git
cd openai-agents-python/examples/voice/static
Fase 2. Creazione dell'agente multilingue
I componenti principali includono:
- Agenti specifici per la lingua per diverse lingue (spagnolo, hindi)
- Un agente primario che gestisce le interazioni iniziali
- Strumenti funzionali per funzionalità aggiuntive (come le informazioni meteo)
Qui's una versione semplificata della struttura del codice:
a. Definisci i tuoi agenti
Crea istanze di agente diverse per ogni lingua che vuoi supportare. Ad esempio, un agente spagnolo e un agente hindi possono essere creati con istruzioni nelle rispettive lingue:
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",
)
Crea il tuo assistente principale che rileverà la lingua dal parlato dell'utente e delegherà all'agente appropriato, se necessario:
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. Aggiungi strumenti (facoltativo)
Ad esempio, puoi aggiungere un semplice strumento meteo che l'agente potrebbe richiamare:
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)
Fase 3. Impostazione della pipeline vocale

La pipeline vocale dell'SDK combina tre componenti:
- Conversione da parlato a testo (STT): Converte l'input audio in testo.
- Flusso di lavoro agente: Elabora il testo (incluso il rilevamento della lingua e l'invocazione dello strumento).
- Sintesi vocale (TTS): Converte l'agente's risposta testuale convertita in audio.
Qui's un esempio semplificato:
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())
In un'applicazione reale, invece del silenzio, si acquisirebbe l'input del microfono in tempo reale e l'agente rileverebbe la lingua in tempo reale.
Passaggio 4: esegui il tuo agente vocale
python -m examples.voice.static.main
Best Practice per lo sviluppo di agenti vocali
Quando si creano agenti vocali con OpenAI Agent SDK, tieni in considerazione queste best practice:
Prendi il comando con il tuo agente vocale multilingue oggi stesso
Creazione di agenti vocali con OpenAI L'Agent SDK è diventato significativamente più accessibile. Gli sviluppatori possono ora scegliere tra architetture multimodali o concatenate in base alle loro esigenze specifiche, impostare una VoicePipeline e lasciare che l'SDK gestisca l' elaborazioni complesse.
Per la qualità del flusso conversazionale, l'approccio multimodale funziona meglio. Per la struttura e il controllo, il metodo concatenato è più adatto. Questa tecnologia continua ad avanzare, aprendo nuove possibilità per applicazioni guidate dalla voce.

