OpenAI-Edge-TTS:本地化 OpenAI 兼容的文本转语音 API,免费高效!
文本转语音(TTS)技术已经成为人工智能领域的重要一环,无论是语音助手、教育内容生成,还是音频文章创作,TTS 工具都能显著提高效率。今天要为大家介绍的是 OpenAI-Edge-TTS,一款基于 Microsoft Edge 在线文本转语音服务的开源项目,它提供了一个与 OpenAI API 兼容的本地 TTS 端点,让你能够通过简单的配置轻松实现文本到语音的转换,而且完全免费!
一、什么是 OpenAI-Edge-TTS?
OpenAI-Edge-TTS 是一个模拟 OpenAI TTS 端点(/v1/audio/speech)的本地服务,使用 Microsoft Edge 在线 TTS 服务来生成语音。通过这款工具,用户无需访问 OpenAI 的官方 API,只需通过本地服务器即可实现文本转语音的功能,同时还支持多种语音和音频格式选项。
项目地址:https://github.com/travisvn/openai-edge-tts
核心特点
- OpenAI 兼容 API
提供/v1/audio/speech端点,与 OpenAI API 端点结构一致,方便用户无缝切换到本地化服务。 - 支持丰富的语音类型
将 OpenAI 的语音选项(如 alloy、echo、fable 等)映射到 Edge-TTS 的等效语音,同时支持直接指定任何 Microsoft Edge-TTS 语音。 - 多种音频格式支持
支持输出多种音频格式,包括 mp3、opus、aac、flac、wav 和 pcm,适配不同使用场景。 - 灵活调整播放速度
支持 0.25 倍到 4.0 倍的播放速度调整,满足特殊场景需求。 - 免费使用
依赖 Microsoft Edge 的在线 TTS 服务,完全免费,降低使用门槛。 - 多语言支持
除英语外,还支持其他语言和地区的语音生成,如日语、中文等。

二、OpenAI-Edge-TTS 的主要应用场景
1. 音频内容创作
快速将文本内容转换为自然流畅的语音,适用于音频文章、播客脚本或教育视频的音频配音。
2. 开发与测试环境
为需要 OpenAI TTS 的开发者提供本地替代方案,便于开发和测试,节省调用官方 API 的成本。
3. 多语言语音输出
支持多语言生成,无论是创建本地化内容,还是测试跨语言功能,OpenAI-Edge-TTS 都能满足需求。
4. 定制化服务
通过可调的播放速度和语音类型,提供更加灵活的语音定制能力,适配特定的项目需求。
三、快速上手 OpenAI-Edge-TTS
1. 环境准备
推荐使用 Docker 部署
- 安装 Docker 和 Docker Compose,确保运行环境就绪。
可选使用 Python 本地运行
- 需要 Python 3.8+ 和 FFMPEG(如果需要进行音频格式转换)。
2. 部署服务
(1)使用 Docker 一键部署
-
克隆项目:
git clone https://github.com/travisvn/openai-edge-tts.git cd openai-edge-tts -
配置环境变量:
在根目录创建.env文件,填写以下内容:API_KEY=your_api_key_here PORT=5050 DEFAULT_VOICE=en-US-AvaNeural DEFAULT_RESPONSE_FORMAT=mp3 DEFAULT_SPEED=1.0 DEFAULT_LANGUAGE=en-US REQUIRE_API_KEY=True REMOVE_FILTER=False EXPAND_API=True或者直接复制默认配置:
cp .env.example .env -
启动服务:
使用 Docker Compose 启动服务:docker compose up --build在后台运行服务:
docker compose up -d
(2)使用 Python 本地运行
-
克隆项目并进入目录:
git clone https://github.com/travisvn/openai-edge-tts.git cd openai-edge-tts -
创建虚拟环境并安装依赖:
python3 -m venv venv source venv/bin/activate # macOS/Linux # 或者 venv\Scripts\activate # Windowspip install -r requirements.txt -
配置环境变量(参考
.env文件)。 -
启动服务:
python app/server.py
3. 测试 API
服务启动后,访问 API 端点:
http://localhost:5050/v1/audio/speech
示例请求
使用 curl 将文本转化为语音并保存为 MP3 文件:
curl -X POST http://localhost:5050/v1/audio/speech \-H "Content-Type: application/json" \-H "Authorization: Bearer your_api_key_here" \-d '{"input": "Hello, I am your AI assistant!","voice": "alloy","response_format": "mp3","speed": 1.1}' \--output speech.mp3
支持其他语言:
curl -X POST http://localhost:5050/v1/audio/speech \-H "Content-Type: application/json" \-H "Authorization: Bearer your_api_key_here" \-d '{"input": "こんにちは、私はAIアシスタントです。","voice": "ja-JP-KeitaNeural"}' \--output speech.mp3
四、与官方 OpenAI TTS 的对比
| 功能维度 | OpenAI-Edge-TTS | OpenAI TTS API |
|---|---|---|
| 成本 | 完全免费 | 需按调用量付费 |
| 多语音支持 | 支持 Edge-TTS 全部语音 | 支持官方指定语音 |
| 兼容性 | 模拟 OpenAI API 端点 | 官方支持 |
| 扩展能力 | 可自行扩展语音类型与功能 | 功能固定 |
| 部署方式 | 本地化运行,支持 Docker 部署 | 依赖云端 |
五、总结:文本转语音的本地化高效方案
OpenAI-Edge-TTS 通过模拟 OpenAI TTS API,结合 Microsoft Edge 在线 TTS 服务,为开发者提供了一款免费、高效且功能丰富的文本转语音解决方案。无论是用于本地开发、测试,还是构建音频内容创作平台,这款工具都能极大降低使用成本,同时提供出色的扩展能力。
相关文章:
OpenAI-Edge-TTS:本地化 OpenAI 兼容的文本转语音 API,免费高效!
文本转语音(TTS)技术已经成为人工智能领域的重要一环,无论是语音助手、教育内容生成,还是音频文章创作,TTS 工具都能显著提高效率。今天要为大家介绍的是 OpenAI-Edge-TTS,一款基于 Microsoft Edge 在线文本…...
P4681 [THUSC 2015] 平方运算 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an) 和常数 p p p ,有 m m m 个操作,分以下两种: modify ( l , r ) \operatorname{modify}(l,r) modify(l,r):对每个 i ∈ [ …...
【apt源】RK3588 平台ubuntu20.04更换apt源
RK3588芯片使用的是aarch64架构,因此在Ubuntu 20.04上更换apt源时需要使用针对aarch64架构的源地址。以下是针对RK3588芯片在Ubuntu 20.04上更换apt源到清华源的正确步骤: 步骤一:打开终端 在Ubuntu 20.04中,按下Ctrl Alt T打…...
Angular 2 表单深度解析
Angular 2 表单深度解析 引言 Angular 2作为现代前端开发的框架之一,以其灵活性和强大的功能赢得了众多开发者的青睐。在Angular 2中,表单处理是其中一个重要且复杂的部分。本文将深入解析Angular 2的表单,从基础知识到高级应用,旨在帮助开发者更好地理解和运用Angular 2…...
PHP 7 新特性
PHP 7 新特性 引言 PHP 作为一种广泛使用的服务器端脚本语言,自1995年诞生以来,已经经历了多个版本的迭代。PHP 7 是 PHP 的发展历程中的一个重要里程碑,它带来了许多新特性和改进,旨在提高性能、增强安全性和简化开发过程。本文将详细介绍 PHP 7 的新特性,帮助开发者更…...
vim如何解决‘’文件非法关闭后,遗留交换文件‘’的问题
过程描述: 由于我修改文件时(一定得修改了文件,不做任何修改不会产生这个问题)的非法关闭,比如直接关闭虚拟机,或者直接断开远程工具的远程连接,产生了以下遗留交换文件的问题: 点击…...
【练习】树形dp
G. Group Homework time limit per test: 3 s memory limit per test: 512 MB input: standard input output: standard output No, we don’t want group homework. It’s the place where KaTeX parse error: Expected EOF, got & at position 7: 1 1 &̲lt; 1 …...
Mybatis是如何进行分页的?
大家好,我是锋哥。今天分享关于【Mybatis是如何进行分页的?】面试题。希望对大家有帮助; Mybatis是如何进行分页的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 实现分页的方式有很多种,最常见…...
【新春特辑】2025年春节技术展望:蛇年里的科技创新与趋势预测
🔥【新春特辑】2025年春节技术展望:蛇年里的科技创新与趋势预测 📅 发布日期:2025年01月29日(大年初一) 在这个辞旧迎新的美好时刻,我们迎来了充满希望的2025年,也是十二生肖中的蛇…...
论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(五)
Understanding Diffusion Models: A Unified Perspective(五) 文章概括基于得分的生成模型(Score-based Generative Models) 文章概括 引用: article{luo2022understanding,title{Understanding diffusion models: A…...
C++并发:C++内存模型和原子操作
C11引入了新的线程感知内存模型。内存模型精确定义了基础构建单元应当如何被运转。 1 内存模型基础 内存模型牵涉两个方面:基本结构和并发。 基本结构关系到整个程序在内存中的布局。 1.1 对象和内存区域 C的数据包括: 内建基本类型:int&…...
JavaScript函数中this的指向
总结:谁调用我,我就指向谁(es6箭头函数不算) 一、ES6之前 每一个函数内部都有一个关键字是 this ,可以直接使用 重点: 函数内部的 this 只和函数的调用方式有关系,和函数的定义方式没有关系 …...
【java学习笔记】@Autowired注解 使用方法和作用 | 配合@Component注解使用 | IOC控制反转
原本在类中,要用什么对象,就直接new一个对象。这种原始的方式 是由应用本身去控制实例的。 用了Autowired注解后,就相当于把实例(对象)的控制权 交给外部容器来统一管理(降低耦合)。(…...
数论问题76一一容斥原理
容斥原理是一种计数方法,用于计算多个集合的并集中元素的个数,以避免重复计算。以下是其基本内容及相关公式: 两个集合的容斥原理 若有集合A和集合B,那么A与B的并集中元素的个数等于A集合元素个数加上B集合元素个数,再…...
python-leetcode-从中序与后序遍历序列构造二叉树
106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right r…...
【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)
💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…...
设置jmeter外观颜色
设置jmeter外观颜色 方法: 步骤一、点击顶部选项 ->外观,这里提供了不同的主题,可选自己喜欢的风格。 步骤二、选择后,弹框提示点击Yes。...
计算机网络 IP 网络层 2 (重置版)
IP的简介: IP 地址是互联网协议地址(Internet Protocol Address)的简称,是分配给连接到互联网的设备的唯一标识符,用于在网络中定位和通信。 IP编制的历史阶段: 1,分类的IP地址: …...
神经网络和深度学习
应用 类型 为什么近几年飞速发展 数据增长,算力增长,算法革新 逻辑回归 向量化 浅层神经网络(Shallow neural network) 单条训练数据前向传播计算表达式 batch训练数据前向传播计算表达式 反向传播计算表达式 参数随机初始化 不能全部设为0 原因是同一…...
MySQL 基础学习(3):排序查询和条件查询
MySQL 查询与条件操作:详解与技巧 在本文中,我们将探讨 MySQL 中的查询操作及其相关功能,包括别名、去重、排序查询和条件查询等,并总结一些最佳实践和注意事项。 一、使用别名(AS) 在查询中,…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
