
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
LinTO-platform-diarization是https://linto.ai/的说话人分轨服务,用于识别音频中不同说话人的片段并分离。该服务可作为独立HTTP服务部署,通过API提供分轨功能;也可作为微服务,通过消息代理(如Redis)接收任务并处理。适用于需要分析多说话人音频的场景,如会议记录、语音交互系统等。
需安装并运行Docker环境。
/opt/audio路径,用于处理大音频文件首先克隆仓库并构建Docker镜像:
bashgit clone https://github.com/linto-ai/linto-platform-diarization.git cd linto-platform-diarization docker build . -t linto-platform-diarization:latest
1. 配置环境变量
复制默认环境变量文件并修改:
bashcp .env_default_http .env
环境变量参数说明:
| 变量名 | 描述 | 示例 |
|---|---|---|
| SERVING_MODE | 部署模式 | http |
| CONCURRENCY | HTTP工作进程数* | 1+ |
*分轨服务会使用所有可用CPU,增加工作进程会共享CPU资源,可能降低并发请求的处理速度
2. 运行容器
bashdocker run --rm \ -v SHARED_FOLDER:/opt/audio \ -p HOST_SERVING_PORT:80 \ --env-file .env \ docker.xuanyuan.run/linto-platform-diarization:latest
参数说明:
| 变量名 | 描述 | 示例 |
|---|---|---|
| HOST_SERVING_PORT | 主机映射端口 | 80 |
服务将通过HTTP API绑定到主机的HOST_SERVING_PORT端口。
通过Celery部署为微服务,容器将作为Celery worker等待消息代理中的分轨任务。
1. 配置环境变量
复制默认任务环境变量文件并修改:
bashcp .env_default_task .env
环境变量参数说明:
| 变量名 | 描述 | 示例 |
|---|---|---|
| SERVING_MODE | 部署模式 | task |
| SERVICES_BROKER | 消息代理URI | redis://my_redis_broker:6379 |
| BROKER_PASS | 消息代理密码(无密码则留空) | my_password |
| QUEUE_NAME | (可选)覆盖生成的队列名称 | my_queue |
| SERVICE_NAME | 服务名称 | diarization-ml |
| LANGUAGE | BCP-47语言代码 | en-US 或 * 或用"|"分隔的多语言 |
| MODEL_INFO | 模型的人类可读描述 | Multilingual diarization model |
| CONCURRENCY | 工作进程数(1个worker=1个CPU) | >1 |
2. 配置docker-compose.yml
yamlversion: '3.7' services: punctuation-service: image: docker.xuanyuan.run/linto-platform-diarization:latest volumes: - /path/to/shared/folder:/opt/audio env_file: .env deploy: replicas: 1 networks: - your-net networks: your-net: external: true
3. 使用docker stack部署
bashdocker stack deploy --resolve-image always --compose-file docker-compose.yml your_stack
队列名称
默认队列名称由SERVICE_NAME和LANGUAGE生成:diarization_{LANGUAGE}_{SERVICE_NAME},可通过QUEUE_NAME环境变量覆盖。
服务发现
微服务模式下,实例会在服务注册表中注册自身信息,存储在Redis的db0中,键为service:{HOST_NAME},注册信息格式如下:
json{ "service_name": "$SERVICE_NAME", "host_name": "$HOST_NAME", "service_type": "diarization", "service_language": "$LANGUAGE", "queue_name": "$QUEUE_NAME", "version": "1.2.0", "info": "Multilingual diarization model", "last_alive": 65478213, "concurrency": 1 }
/healthcheck
/diarization
file:WAV音频文件spk_number(可选,整数):说话人数,留空则自动聚类max_speaker(可选,整数):当spk_number未知时的最大说话人数限制返回格式:
json{ "speakers": [ {"spk_id": "spk5", "duration": 2.0, "nbr_seg": 1}, ... ], "segments": [ {"seg_id": 1, "spk_id": "spk5", "seg_begin": 0.0, "seg_end": 2.0}, ... ] }
/docs
提供OpenAPI/swagger接口文档,可通过浏览器访问查看API详情。
STT-Worker接受以下参数的请求:
file_path(str):共享文件夹中的文件路径(即/opt/audio/{file_path})speaker_count(int,默认None):固定说话人数max_speaker(int,默认None):当speaker_count为None时的最大说话人数返回格式:与HTTP API的/diarization端点相同,包含speakers和segments字段。
可使用curl测试HTTP API:
bashcurl -X POST "http://YOUR_SERVICE:PORT/diarization" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "file=@YOUR_FILE.wav;type=audio/x-wav" -F "spk_number=NUMBER_OF_SPEAKERS"
本项目采用AGPLv3许可证(详见LICENSE)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务