
Aplikacje sterowane głosem przeszły od koncepcji science fiction do wdrażalnych rozwiązań z OpenAI's najnowsze narzędzia. Ten przewodnik przeprowadzi Cię przez praktyczną implementację wielojęzyczni agenci głosowi korzystający z OpenAI Zestaw SDK agenta, pokazując, jak tworzyć systemy przetwarzające mowę w różnych językach, zachowując przy tym rytm interakcji zbliżony do ludzkiego.
Co jest otwarteAI Agent SDK?
OtwarteAI Agent SDK zapewnia deweloperom ramy do tworzenia AI agentów, którzy mogą przetwarzać i reagować na różne dane wejściowe, w tym głosowe. SDK obsługuje model GPT-4o-realtime-preview, który umożliwia możliwość prowadzenia rozmów w czasie rzeczywistym poprzez swoje zaawansowane Przetwarzanie języka naturalnego Funkcje (NLP).
SDK zawiera konkretnie VoicePipeline, komponent zaprojektowany do bezproblemowej obsługi interakcji opartych na głosie. Ten pipeline zarządza złożonym procesem konwersji mowy na tekst, przetwarzania informacji i generowania naturalnie brzmiących odpowiedzi.
Podstawowa architektura nowoczesnych agentów głosowych

1. Proces przetwarzania mowy
OpenAI's VoicePipeline działa poprzez trzy zsynchronizowane etapy: przechwytywanie dźwięku, przetwarzanie języka i generowanie odpowiedzi. System zaczyna od konwersji surowych sygnałów audio na tekst za pomocą zamiana mowy na tekst modele takie jak GPT-4o Transcribe. Następnie te dane tekstowe trafiają do modeli językowych, które analizują kontekst, intencję i ton emocjonalny. Na koniec komponenty text-to-speech generują naturalnie brzmiące odpowiedzi wokalne, utrzymując jednocześnie płynność konwersacji.
2. Architektury multimodalne i łańcuchowe
W rozwoju agentów głosowych dominują dwa odrębne podejścia:
Bezpośrednie przetwarzanie dźwięku (multimodalne)
GPT-4o-realtime-preview przetwarza dźwięk bez konwersji tekstu, dostarczając odpowiedzi 200-300 ms. Ta architektura przechwytuje niuanse wokalne, w tym wysokość dźwięku i pauzy, umożliwiając świadomy emocji odpowiada w trakcie interakcji z klientami, utrzymując w ten sposób natywne przetwarzanie dźwięku.
Przetwarzanie zorientowane na tekst (łańcuchowe)
Tradycyjne rurociągi są rozdzielone transkrypcja, analiza i etapy syntezy. To modułowe podejście umożliwia szczegółowe rejestrowanie dla aplikacji wrażliwych na zgodność, takich jak triage w opiece zdrowotnej. Deweloperzy uzyskują precyzyjną kontrolę nad każdym etapem, korzystając z modeli zoptymalizowanych pod kątem konkretnych zadań.
Przewodnik po wielojęzycznym agencie głosowym: od kodu do rozmowy
Tworzenie agentów głosowych z OpenAI Agent SDK wymaga określonych konfiguracji środowiska. Wykonaj poniższe kroki, aby utworzyć funkcjonalne środowisko programistyczne z możliwościami głosowymi.
Krok 1. Konfiguracja Pythona i środowiska wirtualnego
Upewnij się, że Python 3.8+ jest zainstalowany. Sprawdź za pomocą:
python --version
W przypadku nowych instalacji pobierz Pythona z python.org.
a. Utwórz środowisko wirtualne
Wyizoluj zależności, aby uniknąć konfliktów:
p-ython -m venv voice_agent_env
b. Aktywacja:
- Linux/macOS:
source voice_agent_env/bin/activate
- Windows:
voice_agent_env\Scripts\activate
c. Zainstaluj zależności specyficzne dla głosu
Zainstaluj OpenAI Agents SDK z rozszerzeniami głosowymi i bibliotekami audio:
pip install 'openai-agents[voice]' numpy sounddevice scipy python-dotenv
d. Skonfiguruj OtwórzAI Klucz API: Przechowuj swój klucz API w bezpieczny sposób, korzystając ze zmiennych środowiskowych:
- Stwórz
.envfile:
echo "OPENAI_API_KEY=your-api-key-here" > .env
- Klonuj przykładowe repozytorium (opcjonalnie):
Aby przyspieszyć działanie, możesz sklonować oficjalny przykład z OtwarteAI Repozytorium Agents SDK GitHub.
git clone https://github.com/openai/openai-agents-python.git
cd openai-agents-python/examples/voice/static
Krok 2. Budowanie agenta wielojęzycznego
Główne komponenty obejmują:
- Agenci językowi dla różnych języków (hiszpański, hindi)
- Główny agent, który obsługuje początkowe interakcje
- Narzędzia funkcyjne zapewniające dodatkowe możliwości (np. informacje o pogodzie)
Tutaj's uproszczona wersja struktury kodu:
a. Zdefiniuj swoich agentów
Utwórz różne wystąpienia agenta dla każdego języka, który chcesz obsługiwać. Na przykład agenta hiszpańskiego i agenta hindi można utworzyć z instrukcjami w ich odpowiednich językach:
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",
)
Utwórz swojego głównego asystenta, który będzie wykrywał język wypowiedzi użytkownika i w razie potrzeby delegował zadania odpowiedniemu agentowi:
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. Dodaj narzędzia (opcjonalnie)
Możesz na przykład dodać proste narzędzie pogodowe, które agent może wywołać:
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)
Krok 3. Konfigurowanie kanału głosowego

Proces przesyłania głosu w ramach SDK łączy w sobie trzy komponenty:
- Mowa na tekst (STT): Konwertuje dane wejściowe audio na tekst.
- Przepływ pracy agenta: Przetwarza tekst (w tym wykrywa język i wywołuje narzędzia).
- Tekst na mowę (TTS): Konwertuje agenta's odpowiedź tekstowa z powrotem w formie audio.
Tutaj's uproszczony przykład:
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())
W rzeczywistym zastosowaniu zamiast ciszy przechwytywalibyśmy dźwięk z mikrofonu na żywo, a agent wykrywałby język w czasie rzeczywistym.
Krok 4: Uruchom swojego agenta głosowego
python -m examples.voice.static.main
Najlepsze praktyki w zakresie rozwoju agentów głosowych
Podczas tworzenia agentów głosowych z OpenAI Agent SDK, rozważ następujące najlepsze praktyki:
Zostań liderem dzięki swojemu wielojęzycznemu agentowi głosowemu już dziś
Tworzenie agentów głosowych z OpenAI Agent SDK stał się znacznie bardziej dostępny. Deweloperzy mogą teraz wybierać między architekturami multimodalnymi lub łańcuchowymi w zależności od swoich konkretnych potrzeb, skonfigurować VoicePipeline i pozwolić SDK obsłużyć przetwarzanie złożone.
W przypadku jakości przepływu konwersacji podejście multimodalne sprawdza się najlepiej. W przypadku struktury i kontroli bardziej odpowiednia jest metoda łańcuchowa. Ta technologia nadal się rozwija, otwierając nowe możliwości dla aplikacji sterowanych głosem.

