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

核心特点
  1. OpenAI 兼容 API
    提供 /v1/audio/speech 端点,与 OpenAI API 端点结构一致,方便用户无缝切换到本地化服务。
  2. 支持丰富的语音类型
    将 OpenAI 的语音选项(如 alloy、echo、fable 等)映射到 Edge-TTS 的等效语音,同时支持直接指定任何 Microsoft Edge-TTS 语音。
  3. 多种音频格式支持
    支持输出多种音频格式,包括 mp3、opus、aac、flac、wav 和 pcm,适配不同使用场景。
  4. 灵活调整播放速度
    支持 0.25 倍到 4.0 倍的播放速度调整,满足特殊场景需求。
  5. 免费使用
    依赖 Microsoft Edge 的在线 TTS 服务,完全免费,降低使用门槛。
  6. 多语言支持
    除英语外,还支持其他语言和地区的语音生成,如日语、中文等。

在这里插入图片描述


二、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 一键部署

  1. 克隆项目:

    git clone https://github.com/travisvn/openai-edge-tts.git
    cd openai-edge-tts
    
  2. 配置环境变量:
    在根目录创建 .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
    
  3. 启动服务:
    使用 Docker Compose 启动服务:

    docker compose up --build
    

    在后台运行服务:

    docker compose up -d
    

(2)使用 Python 本地运行

  1. 克隆项目并进入目录:

    git clone https://github.com/travisvn/openai-edge-tts.git
    cd openai-edge-tts
    
  2. 创建虚拟环境并安装依赖:

    python3 -m venv venv
    source venv/bin/activate  # macOS/Linux
    # 或者
    venv\Scripts\activate  # Windowspip install -r requirements.txt
    
  3. 配置环境变量(参考 .env 文件)。

  4. 启动服务:

    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-TTSOpenAI TTS API
成本完全免费需按调用量付费
多语音支持支持 Edge-TTS 全部语音支持官方指定语音
兼容性模拟 OpenAI API 端点官方支持
扩展能力可自行扩展语音类型与功能功能固定
部署方式本地化运行,支持 Docker 部署依赖云端

五、总结:文本转语音的本地化高效方案

OpenAI-Edge-TTS 通过模拟 OpenAI TTS API,结合 Microsoft Edge 在线 TTS 服务,为开发者提供了一款免费、高效且功能丰富的文本转语音解决方案。无论是用于本地开发、测试,还是构建音频内容创作平台,这款工具都能极大降低使用成本,同时提供出色的扩展能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/10278.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 131 分割回文串(纯DFS)

131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1&#xff1a…

服务器虚拟化技术详解与实战:架构、部署与优化

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在现代 IT 基础架构中,服务器虚拟化已成为提高资源利用率、降低运维成本、提升系统灵活性的重要手段。通过服务…

记录一次,PyQT的报错,多线程Udp失效,使用工具如netstat来检查端口使用情况。

1.问题 报错Exception in thread Thread-1: Traceback (most recent call last): File "threading.py", line 932, in _bootstrap_inner File "threading.py", line 870, in run File "main.py", line 456, in udp_recv IndexError: list…

【PyTorch】6.张量运算函数:一键开启!PyTorch 张量函数的宝藏工厂

目录 1. 常见运算函数 个人主页:Icomi 专栏地址:PyTorch入门 在深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活的平台。神经网络作为人工智能的核心技术&…

线段树 算法

文章目录 基础知识适用场景小结 题目概述题目详解300.最长递增子序列2407.最长递增子序列 II 基础知识 线段树和树状数组都只是一个工具来的,题目并不会一下子就告诉你这个题目用到线段树和树状数组,这个取决于你想使用的数据结构以及所要优化的方向 线…

JVM_类的加载、链接、初始化、卸载、主动使用、被动使用

①. 说说类加载分几步? ①. 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 第一过程的加载(loading)也称为装载验证、准备、解析3个部分统称为链接(Linking)在Java中数据类型分为基本数据类型和引用数据…

SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇

文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue(前端)axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 关于地址栏url和axios请求不一致VueJSPS…

socket实现HTTP请求,参考HttpURLConnection源码解析

背景 有台服务器,网卡绑定有2个ip地址,分别为: A:192.168.111.201 B:192.168.111.202 在这台服务器请求目标地址 C:192.168.111.203 时必须使用B作为源地址才能访问目标地址C,在这台服务器默认…

Hive:复杂数据类型之Map函数

Map函数 是Hive里面的一种复杂数据类型, 用于存储键值对集合。Map中的键和值可以是基础类型或复合类型,这使得Map在处理需要关联存储信息的数据时非常有用。 定义map时,需声明2个属性: key 和 value , map中是 key value 组成一个元素 key-value, key必须为原始类…

项目集成GateWay

文章目录 1.环境搭建1.创建sunrays-common-cloud-gateway-starter模块2.目录结构3.自动配置1.GateWayAutoConfiguration.java2.spring.factories 3.pom.xml4.注意:GateWay不能跟Web一起引入! 1.环境搭建 1.创建sunrays-common-cloud-gateway-starter模块…

【C++高并发服务器WebServer】-9:多线程开发

本文目录 一、线程概述1.1 线程和进程的区别1.2 线程之间共享和非共享资源1.3 NPTL 二、线程操作2.1 pthread_create2.2 pthread_exit2.3 pthread_join2.4 pthread_detach2.5 patch_cancel2.6 pthread_attr 三、实战demo四、线程同步五、死锁六、读写锁七、生产消费者模型 一、…

python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算

【0】基础定义 按位与运算:两个等长度二进制数上下对齐,全1取1,其余取0。按位或运算:两个等长度二进制数上下对齐,有1取1,其余取0。 按位取反运算:一个二进制数,0变1,1变0。 【1】…

初二回娘家

昨天下午在相亲相爱一家人群里聊天,今天来娘家拜年。 聊天结束后,开始准备今天的菜肴,梳理了一下,凉菜,热菜,碗菜。 上次做菜,粉丝感觉泡的不透,有的硬,这次使用开水浸泡…

“星门计划对AI未来的意义——以及谁将掌控它”

“星门计划对AI未来的意义——以及谁将掌控它” 图片由DALL-E 3生成 就在几天前,唐纳德特朗普宣布了“星门计划”,OpenAI随即跟进,分享了更多细节。他们明确表示,计划在未来四年内投资5000亿美元,在美国为OpenAI构建一…

内外网文件摆渡企业常见应用场景和对应方案

在如今的企业环境中,内外网文件摆渡的需求越来越常见,也变得越来越重要。随着信息化的不断推进,企业内部和外部之间的数据交换越来越频繁,如何安全、高效地进行文件传输成了一个关键问题。今天,咱就来聊聊内外网文件摆…

2025一区新风口:小波变换+KAN!速占!

今天给大家分享一个能让审稿人眼前一亮,好发一区的idea:小波变换KAN! 一方面:KAN刚中稿ICLR25,正是风口上,与小波变换的结合还处于起步阶段,正是红利期,创新空间广阔。 另一方面&a…

idea修改模块名导致程序编译出错

本文简单描述分别用Idea菜单、pom.xml文件管理项目模块module 踩过的坑: 通过idea菜单创建模块,并用idea菜单修改模块名,结构程序编译报错,出错的代码莫名奇妙。双击maven弹窗clean时,还是报错。因为模块是新建的&am…

线程池以及在QT中的接口使用

文章目录 前言线程池架构组成**一、任务队列(Task Queue)****二、工作线程组(Worker Threads)****三、管理者线程(Manager Thread)** 系统协作流程图解 一、QRunnable二、QThreadPool三、线程池的应用场景W…

P1044 [NOIP2003 普及组] 栈 C语言

P1044 [NOIP2003 普及组] 栈 - 洛谷 | 计算机科学教育新生态 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 pus…

随机矩阵投影长度保持引理及其证明

原论文中的引理 2 \textbf{2} 2 引理 2 \textbf{2} 2的内容​​ 👉前提 1 1 1:设一个随机矩阵 S ( s i j ) ∈ R t d S\text{}(s_{ij})\text{∈}\mathbb{R}^{t\text{}d} S(sij​)∈Rtd,每个元素 s i j s_{ij} sij​独立同分布于 N ( 0 , …