分享
如何开发FoloToy玩具可以使用的私有 STT/LLM/TTS 服务
输入“/”快速插入内容
如何开发FoloToy玩具可以使用的私有 STT/LLM/TTS 服务
用户7255
用户7255
2025年11月24日修改
1.
FoloToy AI 玩具是如何工作的?
FoloToy 出品的所有玩具(包括电路板)作为客户端连接玩具服务,玩具服务我们提供了folotoy-server的docker自部署镜像,可以轻易的部署在各种 Linux 发行版系统上,包括 Debian/Ubuntu/CentOS等等,自部署镜像配置下载地址为:
•
自部署镜像:
https://github.com/FoloToy/folotoy-server-self-hosting
•
部署教程:
https://docs.folotoy.com/zh/docs/installation/start
玩具服务 folotoy-server 主要由以下3个部分组成
•
语音转文本
:服务程序通过互联网接收玩具发送的实时录音数据,并调用 STT(声音转文本)API 将声音转换为文本。目前支持的 STT 选项包括:
openai-whisper
、
azure-stt
、
azure-whisper
、
dify-stt
、
aliyun-asr
等,
点击查看支持的STT完整列表
。
•
调用大模型生成文本
:在接收到上述文本后,立即调用 LLM(大型语言模型)API以流式方式获取 LLM 生成的句子。然后,调用 TTS(文本转语音)API 将句子转换为人类语音。目前支持的 LLM 选项包括:
openai
、
azure-openai
、
gemini
、
qianfan
、
dify
或由
One-Api
代理的 LLM,以及与 OpenAI 接口兼容的其他大模型服务,如 moonshot 等,
点击查看支持的LLM或者Agent完整列表
。
•
文本转语音
:玩具将接收由FoloToy服务器生成的 TTS(文本转语音)音频文件流,并按顺序播放它们。目前支持的 TTS 选项包括:
openai-tts
、
azure-tts
、
elevenlabs
、
aliyun-tts
、
dify-tts
、
edge-tts
(免费)等,
点击查看支持的TTS完整列表
。
FoloToy AI玩具调用的接口,支持了LLM行业的通行的做法,即完全兼容 OpenAI 的接口,在了解工作原理之后,只需要提供 OpenAI 接口格式相同RESTful接口,给folotoy-server调用,就能实现让玩具使用自定义的STT/LLM/TTS服务,如图所示:
接下来介绍如何实现蓝色圆圈的部分服务
2.
实现和调用自定义服务
实现支持 OpenAI 接口的自定义服务之后可以通过修改 docker-compose.yml 或者 roles.json 文件来调用。docker-compose.yml 为修改全局变量,roles.json 可以针对角色进行修改,roles.json 配置的优先级高于 docker-compose.yml。
2.1 自定义 STT 服务
接口说明
自行实现 STT 服务 RESTful 接口说明,详情请参考 OpenAI STT 接口:
https://platform.openai.com/docs/api-reference/audio/createTranscription
实现好接口之后需要支持以下的调用:
代码块
Bash
curl http://api.your_company.com/v1/audio/transcriptions \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: multipart/form-data" \
-F file="@/path/to/file/audio.mp3" \
-F model="whisper-1"
配置使用
修改 docker-compose.yml 中的配置让 folotoy-server 使用自行实现的接口,如下:
代码块
YAML
STT_TYPE: openai-whisper
OPENAI_WHISPER_API_BASE: http://api.your_company.com/v1
OPENAI_WHISPER_KEY: sk-xxxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_WHISPER_MODEL: whisper-1
修改好 docker-compose.yml 之后记得执行 sudo docker compose up -d 来重建服务
参考实现
我们提供了开源的实现作为参考