️ 静态语音代理 使用 OpenAI Agents SDK 和预录音频输入的完整语音交互示例。此示例展示了基本的语音处理流程,包括语音转文本、代理处理和文本转语音功能。 本演示所展示的内容 静态音频处理:录制一次,完整处理 语音处理管道:完整的语音转文本 → 代理处理 → 文本转语音工作流 多代理系统:根据语言检测进行代理交接 工具集成:支持语音激活的天气、时间和计算工具 音频管理:录音、播放及音频实用功能 核心概念:静态语音处理管道 静态语音处理管道在一个工作流中处理完整的音频录制内容。
使用 OpenAI Agents SDK 和预录音频输入的完整语音交互示例。此示例展示了基本的语音处理流程,包括语音转文本、代理处理和文本转语音功能。
静态语音处理管道在一个工作流中处理完整的音频录制内容。可以将其视为一个回合制语音助手,它:
┌─────────────────────────────────────────────────────────────┐ │ STATIC VOICE WORKFLOW │ ├─────────────────────────────────────────────────────────────┤ │ │ │ RECORD AUDIO | │ │ │ │ ▼ │ │ ┌─────────────┐ 1. COMPLETE RECORDING │ │ │ AUDIO │ ◦ Record for fixed duration │ │ │ CAPTURE │ ◦ Full audio buffer │ │ └─────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────┐ 2. SPEECH-TO-TEXT │ │ │ TRANSCRIBE │ ◦ Convert full audio to text │ │ │ AUDIO │ ◦ Complete transcription │ │ └─────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────┐ 3. AGENT PROCESSING │ │ │ AGENT │ ◦ Multi-agent workflow │ │ │ WORKFLOW │ ◦ Tool calls & handoffs │ │ └─────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────┐ 4. TEXT-TO-SPEECH │ │ │ GENERATE │ ◦ Convert response to audio │ │ │ SPEECH │ ◦ Stream audio output │ │ └─────────────┘ │ │ │ │ │ ▼ │ │ PLAY RESPONSE │ └─────────────────────────────────────────────────────────────┘
安装语音依赖项:
pip install 'openai-agents[voice]' pip install sounddevice numpy soundfile librosa
设置环境:
cp env.example .env # Edit .env and add your OpenAI API key
运行静态语音代理:
python agent.py
get_weather(city): Get weather information for any cityget_time(): Get current timecalculate_tip(bill, percentage): Calculate tips for billsAudioPlayer: Real-time audio playback with sounddevicerecord_audio(): Microphone recording with duration controlcreate_silence(): Generate silence bufferssave_audio() / load_audio(): Audio file operationsWorkflowCallbacks:监控转写、工具调用和代理交接pipeline = VoicePipeline( workflow=SingleAgentVoiceWorkflow(agent, callbacks=WorkflowCallbacks()) )
audio_buffer = record_audio(duration=5.0) audio_input = AudioInput(buffer=audio_buffer) result = await pipeline.run(audio_input)
with AudioPlayer() as player: async for event in result.stream(): if event.type == "voice_stream_event_audio": player.add_audio(event.data)
agent = Agent( name="Assistant", handoffs=[spanish_agent, french_agent], tools=[get_weather, get_time, calculate_tip] )
openai-agents[voice]: OpenAI Agents SDK with voice supportsounddevice: Audio recording and playbacknumpy: Audio data processingsoundfile: Audio file operations (optional)librosa:音频重采样(可选)掌握静态语音代理后:
免责声明:
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。