Skip to content

LingEcho is an intelligent voice agent platform that brings conversations to life. With LingEcho, you can create custom AI personas, give them unique voices, and let them interact naturally with users in real time.

License

Notifications You must be signed in to change notification settings

code-100-precent/LingEcho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LingEcho 灵语回响

LingEcho Logo

智能语音交互平台 - 让AI拥有真实的声音

Go Version React TypeScript License Build Status


项目演示

具体请查看 演示视频链接:https://b23.tv/7JMN3jE

📖 项目简介

LingEcho 灵语回响是一个基于 Go + React 的智能语音交互平台,为企业和用户提供完整的AI语音交互解决方案。集成了先进的语音识别(ASR)、语音合成(TTS)、大语言模型(LLM)和实时通信技术,支持实时通话、声音克隆、知识库管理、SIP软电话等企业级功能。

✨ 核心特性

  • 🎯 AI人物实时通话 - 基于WebRTC技术实现与AI人物的实时语音通话,支持高质量音频传输和低延迟交互
  • 🎤 声音克隆技术 - 支持自定义声音训练和克隆,让AI助手拥有专属音色,打造个性化语音体验
  • 🔧 应用接入功能 - 通过JS注入方式快速接入新应用,实现无痛集成,为企业用户提供灵活的接入方案
  • 📚 知识库管理 - 强大的知识库管理系统,支持文档存储、检索和AI分析,为企业提供智能知识服务
  • 🔄 工作流自动化 - 可视化工作流设计器,支持复杂业务流程自动化,提升企业运营效率
  • 📞 SIP软电话 - 企业级SIP软电话功能,支持传统电话系统集成,满足企业通信需求
  • 🛠️ 50+免费API调用 - 集成50+免费API的function tools调用,为AI助手提供丰富的功能扩展能力
  • 💾 通话记录存储 - 通话记录存储到对象存储中,支持后续回溯和分析,提供完整的通话历史管理
  • 🔑 密钥管理与API平台 - 企业级密钥管理系统和API开发平台,支持自定义密钥配置、API文档生成和开发者工具

议题二:AI角色扮演网页

开发一个利用AI来做角色扮演的网页,用户可以搜索自己感兴趣的角色例如哈利波特、苏格拉底等并可与其进行语音聊天。

1. 目标用户类型、痛点及用户故事

目标用户类型

我们团队研发的灵语回响主要面向两类用户:

  • 急需快速集成AI客服节约人力资源损耗的公司
  • 对AI语音感兴趣的二次元玩家

用户痛点分析

  1. 企业用户:

    • 客服成本高:传统客服需要大量人力,成本高昂。
    • 培训周期长:新员工培训需要数月时间。
    • 系统集成复杂:企业现有系统难以整合。
  2. 二次元玩家:

    • 缺乏沉浸感:传统聊天机器人无法提供真实的语音交互体验。
    • 角色单一:现有解决方案角色固定,缺乏个性化。
    • 功能局限:传统方案功能单一,无法满足复杂需求。

用户故事

  1. 我是一个初创公司的老板,创业初期,我们的产品开始营收,但是每天会有各种产品相关的询问电话把我们公司电话打爆,我们可能就需要花费大量的财力去招聘和培训客服人员以及如果用户进入我们的官网,如何让他们沉浸的快速的去了解我们的产品并吸引他们消费呢? 我可能需要一种更加智能化,更加高效的方式。

  2. 我是一个二次元死宅,一直梦想跟二次元女神能真正说话交流,但是没有找到合适的方式希望有一个可以二次元人物进行语音聊天解决方案,能够模仿二次元人物的声音并且具有二次元人物的背景和知识。


2. 功能需求及优先级

所需功能列表

我们认为这个网页需要的功能包括:

  1. 语音通话: 用户可以跟AI进行实时的语音通话交流
  2. 声音克隆: 用户可以训练和自定义音色,并使用该音色进行操作
  3. 知识库管理: 用户可以为语音助手添加知识库并使用
  4. 工作流模块: 用户可以定义工作流,并使用
  5. 应用接入模块: 用户可以通过js注入或封装网络请求的方式进行其他应用的快速集成(当然也可以做点密钥配置或网关拦截计费)
  6. 找大量免费API,为LLM内置大量的functionTools进行查询这类,包括天气查询,新闻查询等功能。
  7. SIP电话通话,能让用户使用软电话进行AI对话交流功能,提高用户体验。
  8. 基础用户登录,通知,角色管理模块
  9. 后台管理模块

功能优先级

  1. 语音通话 - LEVEL 1
  2. 声音克隆 - LEVEL 1
  3. SIP电话通话 - LEVEL 1
  4. 工作流模块 - LEVEL 2
  5. 应用接入 - LEVEL 2
  6. 内置FunctionTools - LEVEL 2
  7. 知识库模块 - LEVEL 2
  8. 基础用户功能模块 - LEVEL 3

本次计划开发的功能

  1. 语音通话: 必选
  2. 声音克隆: 可选
  3. 工作流: 可选
  4. SIP电话通话: 必选
  5. 应用接入: 必选
  6. 知识库: 必选
  7. 内置FunctionTools: 必选
  8. 基础功能模块: 必选

3. LLM模型选择

选择模型:DeepSeek-V3.1

模型 优势 劣势 适用场景
DeepSeek-V3.1 ✅ 中文理解强
✅ 推理能力强
✅ 成本适中
✅ API稳定
❌ 英文能力一般 中文对话、逻辑推理、代码生成
GPT-4 ✅ 综合能力强
✅ 多语言支持
✅ 创意能力强
❌ 成本高
❌ 访问限制
创意写作、多语言应用
Claude-3 ✅ 安全性高
✅ 长文本处理
✅ 分析能力强
❌ 中文能力一般
❌ 成本较高
长文档分析、安全敏感应用
通义千问 ✅ 中文理解好
✅ 成本低
✅ 国内访问
❌ 能力相对较弱
❌ 稳定性一般
基础对话、简单问答

选择理由

技术优势
  • 中文理解能力 - DeepSeek-V3.1在中文理解方面表现优异,适合中文用户
  • 推理能力强 - 在逻辑推理和问题解决方面表现突出
  • 成本效益 - 相比GPT-4,成本更低,适合大规模部署
  • API稳定性 - 服务稳定,响应速度快,适合实时应用
业务优势
  • 本土化支持 - 对中文语境和文化理解更深入
  • 技术栈匹配 - 与我们的Go后端技术栈兼容性好
  • 扩展性强 - 支持Function Calling,便于集成外部功能
  • 维护成本低 - 国内服务商,技术支持及时

4. AI角色技能期望

我们团队认为除了语音聊天之外还需要的功能包括:

  1. LLM内置大量FunctionTools能够进行一些调用API的方法
  2. AI角色还应该拥有知识库那种可以拥有角色专业知识的能力
  3. AI角色实时通话还可以进行主动追问功能
  4. AI角色还可以具有接入其他应用的功能
  5. AI角色好可以集成第三方服务和数据源
  6. 还希望AI角色能够拥有情景感知和语气都判断(或许可以考虑转发音频进行分析的方式,不过性能和实时性问题待验证)
  7. AI角色持续学习功能,可以根据用户交互不断优化对话质量和角色一致性

🏗️ 技术架构

LingEcho 核心架构

核心WebRTC通话流程

WebRTC 核心通话流程

后端技术栈

技术 版本 用途
Go 1.21 高性能后端语言
Gin 1.9 轻量级Web框架
GORM 1.31.0 ORM数据库操作
WebSocket 最新 实时双向通信
SIP RFC 3261 会话发起协议
SQLite/MySQL/PostgreSQL - 数据库支持

前端技术栈

技术 版本 用途
React 18.0 现代化前端框架
TypeScript 5.0 类型安全的JavaScript
Tailwind CSS 3.0 实用优先的CSS框架
Framer Motion 10.16.16 动画库
WebRTC 最新 实时音视频通信
Vite 5.0.8 构建工具

AI/ML技术栈

技术 版本 用途
语音识别 ASR 自动语音识别技术
语音合成 TTS 文本转语音技术
声音克隆 Voice Clone 个性化音色训练
大语言模型 LLM 智能对话生成

🚀 快速开始

环境要求

  • Go >= 1.25.1
  • Node.js >= 18.0.0
  • npm >= 8.0.0
  • Git

安装步骤

1. 克隆项目

git clone https://github.com/your-username/LingEcho.git
cd LingEcho

2. 后端配置

# 进入项目目录
cd LingEcho

# 安装Go依赖
go mod tidy

# 配置环境变量
cp .env.example .env.dev
# 编辑 .env 文件,配置数据库和API密钥

3. 前端配置

# 进入前端目录
cd ui

# 安装依赖
npm install

# 启动开发服务器
npm run dev

4. 启动后端服务

# 返回项目根目录
cd ..

# 启动后端服务
go run ./cmd/server/. -mode=dev

5. 访问应用


🎯 核心功能

1. 🎤 实时语音交互

WebRTC 通信流程
  • WebRTC技术 - 实现低延迟实时语音通话
  • 多路音频处理 - 支持多用户同时通话
  • 音频质量优化 - 自适应码率和降噪处理
  • 跨平台支持 - 支持Web、移动端和桌面端

2. 🔄 可视化工作流

工作流处理流程
  • 拖拽式设计器 - 直观的节点连接界面
  • 多种节点类型 - 语音输入、AI处理、语音输出、条件分支
  • 实时执行监控 - 可视化执行进度和状态
  • 错误处理机制 - 自动重试和异常恢复

3. 🎨 声音克隆技术

  • 音色训练 - 支持自定义声音模型训练
  • 多音色支持 - 男声、女声、儿童声等多种音色
  • 音质优化 - 高保真音频合成
  • 个性化定制 - 专属AI助手音色

4. 🤖 智能对话引擎

  • 多模型支持 - GPT、Claude、DeepSeek等主流模型
  • 上下文理解 - 长对话记忆和上下文关联
  • Function Calling - 50+内置功能工具
  • 知识库集成 - 企业知识库智能问答

5. 🔧 应用接入功能

应用接入流程
  • JS注入方式 - 快速接入新应用,实现无痛集成
  • API网关 - 统一的API管理和访问控制
  • 密钥管理 - 企业级密钥管理系统
  • 计费系统 - 灵活的计费策略和监控

6. 📞 SIP软电话系统

SIP通话时序图
  • SIP协议支持 - 标准SIP协议实现
  • 软电话功能 - 企业级软电话解决方案
  • 通话记录 - 完整的通话历史管理
  • 语音服务器核心 - 高性能语音处理引擎

7. 🎤 语音服务器核心

语音服务器核心组件
  • 音频处理 - 实时音频编解码和处理
  • 语音识别 - 高精度语音转文本
  • 语音合成 - 自然流畅的文本转语音
  • 实时通信 - 低延迟音频传输

🔧 配置说明

环境变量配置

# machine id
MACHINE_ID=1

# 数据库配置
DB_DRIVER=sqlite
DSN=./ling.db

# 服务器配置
ADDR=:7072
MODE=test


# logger
LOG_LEVEL=debug
LOG_FILENAME=logs/logger.log
LOG_MAX_SIZE=200
LOG_MAX_AGE=30
LOG_MAX_BACKUPS=7
DOCS_PREFIX=/api/docs
API_PREFIX=/api
ADMIN_PREFIX=/admin
AUTH_PREFIX=/auth

# security
SESSION_SECRET=hibiscus_secret
SESSION_EXPIRE_DAYS=7
KEY_AUTH_TOKEN_EXPIRED=86400

# mail
MAIL_HOST=xxx
MAIL_USERNAME=xxx
MAIL_PASSWORD=xxx
MAIL_PORT=587
MAIL_FROM=xxx

# 七牛云ASR配置
QINIU_ASR_API_KEY=your-asr-api-key
QINIU_ASR_BASE_URL=https://openai.qiniu.com/v1
QINIU_ASR_TIMEOUT=30

# 七牛云TTS配置
QINIU_TTS_API_KEY=your-tts-api-key
QINIU_TTS_BASE_URL=https://openai.qiniu.com/v1
QINIU_TTS_VOICE_TYPE=qiniu_zh_female_tmjxxy

# LLM配置
LLM_API_KEY=your-llm-api-key
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL=deepseek-v3.1

# rustpbx
RUST_PBX_URL=http://locahost:8083
RUST_PBX_WEBSOCKET_URL=ws://localhost:8083/call/webrtc

XUNFEI_APP_ID=xxx
XUNFEI_API_KEY=xxxxx

XUNFEI_WS_APP_ID=xxxx
XUNFEI_WS_API_KEY=xxxxxx
XUNFEI_WS_API_SECRET=xxxxxxx

界面预览

工作流设计器

  • 拖拽式界面 - 直观的节点连接操作
  • 实时预览 - 即时查看工作流执行效果
  • 模板库 - 丰富的预设工作流模板
  • 调试工具 - 完整的执行日志和错误诊断

语音交互界面

  • 实时录音 - 按住说话,松开识别
  • 音频播放 - 高质量语音合成播放
  • 对话历史 - 完整的交互记录
  • 状态监控 - 实时显示处理状态

部署指南

Docker部署

# Dockerfile
FROM golang:1.25.1-alpine AS builder
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o main ./cmd/server/.

FROM node:18-alpine AS frontend
WORKDIR /app
COPY ui/ .
RUN npm install
RUN npm run build

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
COPY --from=frontend /app/dist ./ui/dist
EXPOSE 7072
CMD ["./main"]

生产环境配置

# 使用生产模式启动
go run ./cmd/server/. -mode=production

# 或使用systemd服务
sudo systemctl start lingecho
sudo systemctl enable lingecho

🤝 贡献指南

我们欢迎所有形式的贡献!请查看我们的贡献指南:

开发流程

  1. Fork项目 - 点击右上角的Fork按钮
  2. 创建分支 - git checkout -b feature/your-feature
  3. 提交更改 - git commit -m 'Add some feature'
  4. 推送分支 - git push origin feature/your-feature
  5. 创建PR - 在GitHub上创建Pull Request

代码规范

  • Go代码 - 遵循Go官方代码规范
  • TypeScript - 使用ESLint和Prettier
  • 提交信息 - 使用约定式提交格式
  • 测试覆盖 - 新功能需要包含测试用例

📄 许可证

本项目采用 MIT许可证 - 查看LICENSE文件了解详情。


🙏 致谢

感谢以下开源项目的支持:


✅ 功能完成清单

🎯 核心功能开发状态

功能模块 开发状态 完成度 完成人 说明
🎤 语音输入 ✅ 已完成 100% wangzhihan 支持实时录音、音频上传、ASR识别
🎵 语音输出 ✅ 已完成 100% wangzhihan 支持TTS合成、音频播放、多音色选择
🔄 工作流引擎 ✅ 已完成 100% chenting 可视化设计器、节点执行、实时监控
🤖 AI处理 ✅ 已完成 100% chenting 多模型支持、系统提示词、智能回复
🔀 条件分支 ✅ 已完成 100% chenting 智能路由、条件判断、多分支处理
📡 WebSocket通信 ✅ 已完成 100% wangzhihan 实时状态更新、进度监控、错误处理
🎨 前端界面 ✅ 已完成 100% wangyueran React组件、响应式设计、用户体验
🔧 后端API ✅ 已完成 100% wangzhihan RESTful接口、文件上传、静态服务

🚀 高级功能开发状态

功能模块 开发状态 完成度 完成人 说明
🎯 智能语音路由 ✅ 已完成 100% chenting 根据用户意图自动分流处理
📊 执行进度监控 ✅ 已完成 100% wangyueran 实时显示节点执行状态和进度
🔄 错误处理机制 ✅ 已完成 100% wangzhihan 自动重试、异常恢复、用户友好提示
🎵 音频文件管理 ✅ 已完成 100% wangzhihan 本地存储、七牛云上传、URL生成
🔧 系统提示词 ✅ 已完成 100% chenting 动态设置、AI角色定制、回复清洗
📱 响应式设计 ✅ 已完成 100% wangyueran 移动端适配、触摸操作、多设备支持

🎨 用户体验功能

功能模块 开发状态 完成度 完成人 说明
🎤 按住说话 ✅ 已完成 100% wangyueran 直观的录音交互、状态反馈
🎵 音频播放器 ✅ 已完成 100% wangyueran 播放控制、进度条、音量调节
📊 实时状态显示 ✅ 已完成 100% wangyueran 执行进度、节点状态、错误信息
🎨 工作流模板 ✅ 已完成 100% chenting 预设模板、快速开始、自定义配置
🔄 加载状态 ✅ 已完成 100% wangyueran 按钮禁用、加载动画、用户引导


功能规划与优先级

1. 核心功能需求

高优先级功能(已完成)

  • 实时语音交互 - 核心功能,用户体验的基础
  • 可视化工作流 - 核心功能,降低使用门槛
  • 智能对话引擎 - 核心功能,提供智能回复
  • 多模型支持 - 核心功能,保证AI能力
  • WebSocket通信 - 核心功能,实时状态更新

中优先级功能(已完成)

  • 智能语音路由 - 提升用户体验,自动化处理
  • 条件分支处理 - 扩展工作流能力,支持复杂场景
  • 音频文件管理 - 支持本地存储和云存储
  • 系统提示词定制 - 个性化AI角色
  • 错误处理机制 - 提升系统稳定性

低优先级功能(规划中)

  • 声音克隆技术 - 高级功能,需要大量训练数据
  • 多语言支持 - 国际化需求,需要多语言模型
  • 知识库集成 - 企业级功能,需要文档处理能力
  • SIP软电话 - 企业级功能,需要电信协议支持
  • 50+免费API - 生态功能,需要第三方集成

2. 本次开发功能

已完成功能

  • 基础语音交互 - 录音、识别、合成、播放
  • 工作流引擎 - 节点执行、条件分支、实时监控
  • AI处理节点 - 多模型支持、系统提示词、智能回复
  • 前端界面 - React组件、响应式设计、用户体验
  • 后端API - RESTful接口、文件上传、WebSocket通信

进行中功能

  • 性能优化 - 响应速度、并发处理、资源管理
  • 错误处理 - 异常恢复、用户提示、日志记录
  • 文档完善 - API文档、使用指南、示例代码

待开发功能

  • 声音克隆 - 音色训练、模型优化、质量提升
  • 多语言支持 - 国际化、本地化、语言切换
  • 知识库管理 - 文档上传、智能检索、问答系统
  • 企业级功能 - 用户管理、权限控制、数据统计

我们的团队

三位全栈工程师组成的核心团队,专注于AI语音技术的创新与应用。

成员 角色 职责
chenting 全栈工程师 + 项目经理 负责项目整体架构设计和全栈开发,主导产品方向和技术选型
wangyueran 全栈工程师 负责前端界面开发和用户体验优化,确保产品易用性
wangzhihan 全栈工程师 负责后端服务开发和系统集成,保障产品稳定性和性能

我们的价值观

  • 🎯 以用户为中心 - 为企业用户和开发者提供应用接入功能,实现快速集成和无痛部署
  • 👁️ 二次元用户 - 为二次元爱好者提供与虚拟角色实时语音通话和软电话功能
  • 👥 教学培训 - 为教育培训机构提供声音模拟功能,用于模拟名人名言进行教学
  • 🏆 内容创作者 - 为创作者提供快速创造有声音格调的虚拟人物,用于短视频、直播等

联系我们


About

LingEcho is an intelligent voice agent platform that brings conversations to life. With LingEcho, you can create custom AI personas, give them unique voices, and let them interact naturally with users in real time.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •