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) 在查询中,…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...