首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP Neuron V3 正式全面支持多模态

PHP Neuron V3 正式全面支持多模态

作者头像
Tinywan
发布2026-07-01 15:01:49
发布2026-07-01 15:01:49
140
举报
文章被收录于专栏:开源技术小栈开源技术小栈

Neuron 多模态

Neuron v3 支持全面支持多模态(输入与输出)

通常纯 AI 音频服务不支持工具和对话等完整的代理能力。因此,您可以将这些组件作为独立服务在代理工作流程中使用,或者因为它们实现了 AIProviderInterface 接口,可以在代理内部使用。在这种情况下,您可以受益于代理工作流程功能,如中间件和护栏。

这些组件对于创建本地语音助手以实现免提与模型交互非常有帮助。典型的流程包括捕获音频,使用单独的语音转文本(STT)服务将其转录为文本,将文本发送到代理进行处理,然后使用文本转语音(TTS)来朗读响应。

本地语音助手

非常适合创建本地语音助手,实现免提(hands-free)与模型的交互。典型流程是:

  • 捕获音频
  • 使用独立的 Speech-To-Text (STT) 服务将音频转录为文本
  • 将文本发送给 Agent 进行处理
  • 再使用 Text-to-Speech (TTS) 将回复文本转为语音播放

作为 Agent 的提供商

代码语言:javascript
复制
namespace App\Neuron;

use NeuronAI\Agent\Agent;
use NeuronAI\Chat\Messages\UserMessage;
use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\Providers\OpenAI\Audio\OpenAITextToSpeech;

class MyAgent extends Agent
{
    protectedfunction provider(): AIProviderInterface
    {
        returnnew OpenAITextToSpeech(
            key: 'OPENAI_API_KEY',
            model: 'gpt-4o-mini-tts',
            voice: 'alloy',
        );
    }
}

// 运行 Agent
$message = MyAgent::make()
    ->chat(new UserMessage("Hi!"))
    ->getMessage();

// 获取消息中的音频部分(base64 格式)
$audioBase64 = $message->getAudio()->getContent();

// 保存音频文件
file_put_contents(__DIR__ . '/assets/speech.mp3', base64_decode($audioBase64));

直接使用

代码语言:javascript
复制
$provider = new OpenAITextToSpeech(
    key: 'OPENAI_API_KEY',
    model: 'gpt-4o-mini-tts',
    voice: 'alloy',
);

// 从文本生成语音
$message = $provider->chat(new UserMessage("Hi, I'm the creator of Neuron AI framework!"));

// 获取消息中的音频部分(base64 格式)
$audioBase64 = $message->getAudio()->getContent();

// 保存音频文件
file_put_contents(__DIR__ . '/assets/speech.mp3', base64_decode($audioBase64));

OpenAI Audio

文本转语音

代码语言:javascript
复制
use NeuronAI\Providers\OpenAI\Audio\OpenAITextToSpeech;

$provider = new OpenAITextToSpeech(
    key: 'OPENAI_API_KEY',
    model: 'gpt-4o-mini-tts',
    voice: 'alloy',
);

// 从文本生成语音
$message = $provider->chat(new UserMessage("Hi, I'm the creator of Neuron AI framework!"));

// 获取消息中的音频部分(base64 格式)
$audioBase64 = $message->getAudio();

// 保存音频文件
file_put_contents(__DIR__ . '/assets/speech.mp3', base64_decode($audioBase64));

语音转文本

代码语言:javascript
复制
use NeuronAI\Providers\OpenAI\Audio\OpenAISpeechToText;

$provider = new OpenAISpeechToText(
    key: 'OPENAI_API_KEY',
    model: 'gpt-4o-transcribe',
);

// 转录音频
$message = $provider->chat(
    new UserMessage([
        new TextContent('This audio is about a math lesson. Take care of the technical words.'),
        new AudioContent(__DIR__ . '/assets/intro.mp3', SourceType::URL)
    ])
);

// 打印从音频文件中提取的文本
echo $message->getContent();

ElevenLabs

文本转语音

代码语言:javascript
复制
use NeuronAI\Providers\ElevenLabs\ElevenLabsTextToSpeech;

$provider = new ElevenLabsTextToSpeech(
    key: 'ELEVENLABS_API_KEY',  // 注意:这里应使用 ElevenLabs 的 key,而不是 OpenAI
    // model 和 voice 参数根据 ElevenLabs 实际支持调整(示例中可能沿用 OpenAI 风格,但实际以官方为准)
    model: 'eleven_multilingual_v2',  // 示例,实际参数请参考 ElevenLabs 文档
    voice: 'Rachel',                   // 示例 voice ID
);

// 从文本生成语音
$message = $provider->chat(new UserMessage("Hi, I'm the creator of Neuron AI framework!"));

// 获取消息中的音频部分(base64 格式)
$audioBase64 = $message->getAudio();

// 保存音频文件(注意原文中这里有拼写错误 asserts,应为 assets)
file_put_contents(__DIR__ . '/assets/speech.mp3', base64_decode($audioBase64));

语音转文本

代码语言:javascript
复制
use NeuronAI\Providers\ElevenLabs\ElevenLabsSpeechToText;  // 注意:文档中写的是 OpenAI\Audio\ElevenLabsSpeechToText,可能为笔误

$provider = new ElevenLabsSpeechToText(
    key: 'ELEVENLABS_API_KEY',
    model: 'whisper-1',  // 示例,ElevenLabs 实际可能使用不同模型
);

// 转录音频
$message = $provider->chat(
    new UserMessage(
        new AudioContent(__DIR__ . '/assets/intro.mp3', SourceType::URL)
    )
);

// 打印从音频文件中提取的文本
echo $message->getContent();

https://docs.neuron-ai.dev/providers/audio

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Neuron 多模态
  • 本地语音助手
  • 作为 Agent 的提供商
  • 直接使用
  • OpenAI Audio
    • 文本转语音
    • 语音转文本
  • ElevenLabs
    • 文本转语音
    • 语音转文本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档