For the complete documentation index, see llms.txt. This page is also available as Markdown.

音频

连接专门处理音频转文本及其反向转换的提供商

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

这些组件对于创建本地语音助手很有帮助,可用于与模型进行免手操作交互。典型流程包括捕获音频,使用单独的 Speech-To-Text(STT)服务将其转写为文本,将该文本发送给 Agent 进行处理,然后使用 Text-to-Speech(TTS)读出响应。

作为 Agent 提供器

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
{
    protected function provider(): AIProviderInterface
    {
        return new 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));

直接使用

OpenAI 音频

文本转语音

语音转文本

ElevenLabs

文本转语音

语音转文本

ZAI

语音转文本

最后更新于