当前位置: 首页 > news >正文

Gradio全解10——Streaming:流式传输的音频应用(7)——ElevenLabs:高级智能语音技术

Gradio全解10——Streaming:流式传输的音频应用(7)——ElevenLabs:高级智能语音技术

    • 10.7 ElevenLabs:高级智能语音技术
      • 10.7.1 核心功能与可用模型
        • 1. 核心功能与产品
        • 2. 三类语音模型
      • 10.7.2 文本转语音API
        • 1. 完整操作步骤
        • 2. Stream处理方式:流式播放或手动处理
      • 10.7.3 语音转文本API
      • 10.7.4 音乐API
        • 1. Eleven Music生成音乐音轨
        • 2. 生成作曲方案并转为音频

本章目录如下:

  1. 《Gradio全解10——Streaming:流式传输的音频应用(1)——自动语音识别技术(ASR)》
  2. 《Gradio全解10——Streaming:流式传输的音频应用(2)——使用本地部署的Mini-Omni模型构建对话式聊天机器人》
  3. 《Gradio全解10——Streaming:流式传输的音频应用(3)——HF Inference:在推理客户端运行推理服务》
  4. 《Gradio全解10——Streaming:流式传输的音频应用(4)——Spaces ZeroGPU:为Spaces提供动态GPU分配方案》
  5. 《Gradio全解10——Streaming:流式传输的音频应用(5)——Mistral-7B实现流式传输音频:魔力8号球》
  6. 《Gradio全解10——Streaming:流式传输的音频应用(6)——基于Groq的带自动语音检测功能的Gradio应用》
  7. 《Gradio全解10——Streaming:流式传输的音频应用(7)——ElevenLabs:高级智能语音技术》

10.7 ElevenLabs:高级智能语音技术

本节引入ElevenLabs智能语音技术,作为更专业的语音、音频和音乐工具,后边视频应用中将用到它。它不仅能无缝替换之前的语音转换工具,还能实现更丰富复杂的语音功能;它不仅能拓展开发者的工具库,还能产生更逼真的语音甚至优美的音乐。

本节内容包括ElevenLabs的核心功能与产品讲解,其旗下Eleven系列语音大模型的介绍,以及文本转语音API、语音转文本API及音乐API的使用。更多ElevenLabs内容请参阅:🖇️链接10-39。

10.7.1 核心功能与可用模型

ElevenLabs是一家专注于人工智能语音技术的公司,提供先进的文本转语音和语音克隆(Voice Cloning)功能和众多语音产品,同时提供三类语音模型,下边逐一介绍。

1. 核心功能与产品

ElevenLabs AI模型能够生成高度自然、富有表现力的人声,适用于有声书、视频配音、虚拟助手、游戏角色对话等场景。ElevenLabs的核心功能包括:

  • ①文本转语音(TTS),支持多种语言和声音风格(如自然、激昂、柔和等),可调节语速、语调、停顿等参数。
  • ②语音克隆(Voice Cloning),上传少量样本音频即可克隆特定人声(需遵守伦理政策)。
  • ③多语言支持(Multi-Language),包括英语、中文、西班牙语、法语、德语等20+语言。
  • ④实时语音生成(Streaming),低延迟,适合交互式应用(如聊天机器人)。

实现相关功能的ElevenLabs产品众多,包括涵盖了从帐户创建到高级语音克隆、语音合成技术、配音和专家配音的所有内容。大致分类如下:

  • 游乐场(Playground):Text to Speech、Speech To Text to、Voice Changer、Sound Effects等。
  • 产品(Product):Studio、Music、Dubbing Studio、Transcripts、Subtitles等。
  • 语音(Voice):Voice cloning、Voice library、Voice design、Payouts等。
  • 音频工具(Audio Tool):Audio Native、Voiceover Studio、Voice Isolator、AI speech Classifier。
  • 管理(Administration):Account、Consolidated Billing、Data Residency、Usage Analytics、Workspaces、Webhooks等。

还有用于部署定制的对话式语音代理的平台Conversational AI。更多关于ElevenLabs产品的信息请参阅:PRODUCT GUIDES🖇️链接10-40。

2. 三类语音模型

ElevenLabs的可用模型包括三类Text to Speech、Speech to Text和Music。
其中Text to Speech类模型典型代表有:

  • Eleven v3(alpha):最新且最先进的语音合成模型,能生成自然逼真的语音,具有丰富的情感表现力,并支持跨70多种语言的上下文理解,适用于角色对话、有声书制作和情感化对话。
  • Eleven Multilingual v2(eleven_multilingual_v2):在稳定性、语言多样性和口音准确性方面表现卓越,支持29种语言,推荐作为多数场景的首选方案。
  • Eleven Flash v2.5(eleven_flash_v2_5):超低延迟,支持32种语言,响应速度更快,字符单价降低50%。
  • Eleven Turbo v2.5 (eleven_turbo_v2_5):质量与延迟的最佳平衡,特别适合对实时性要求高的开发场景,支持32种语言。

Speech to Text类模型有:

  • Scribe v1(scribe_v1):先进的语音识别模型,提供带词级时间戳的精准转录、多说话人音频的说话人分离技术、增强上下文理解的动态音频标记等高级功能,支持99种语言。适用于转录服务、会议记录、内容分析和多语言识别。

Music类模型有:

  • Eleven Music(music_v1):是一款文本生成音乐模型,可通过自然语言提示词生成任意风格的专业级音乐。该模型能理解创作意图,并根据目标生成具有上下文感知的完整音频。支持自然语言与专业音乐术语输入,提供以下尖端特性:①对流派、风格与结构的完整控制。②人声演唱或纯乐器演奏版本。③多语言支持(包括英语、西班牙语、德语、日语等)。④可编辑整曲或特定段落的音效与歌词。

此外,还有人性化、富有表现力的语音设计模型eleven_ttv_v3(Text to Voice),最先进的多语言语音转换器模型eleven_multilingual_sts_v2(Speech to Speech),仅限英语的语音转换模型eleven_english_sts_v2,以及具有实验功能并减少沉默时幻觉的scribe_v1_experimental,请根据需要选择。更多Eleven系列大模型信息请参考:🖇️链接10-41。

10.7.2 文本转语音API

ElevenLabs API提供简洁接口,可访问最先进的音频模型与功能。从低延迟会话代理到用于配音和有声读物的领先AI语音生成器,它只需几行代码,就能为创作者和开发人员带来最引人注目、最丰富、最逼真的声音。下面分别以使用文本转语音API、语音转文本API及音乐API为例讲解ElevenLabs API用法,首先从文本转语音API开始。

1. 完整操作步骤

本节以Python为例,讲述使用文本转语音API的完整操作步骤:
第一步,在控制面板创建API密钥:ELEVENLABS_API_KEY🖇️链接10-42。该密钥将用于安全访问API服务并控制信用额度使用。建议将密钥存储为托管密钥,并通过.env文件或应用配置传入SDK:

ELEVENLABS_API_KEY=<your_api_key_here>

第二步,安装SDK。除了elevenlabs,还将使用dotenv库从环境变量加载API密钥,安装命令如下所示:

pip install elevenlabs python-dotenv

若需通过扬声器播放音频,系统可能会提示安装MPV(🖇️链接10-43)或ffmpeg。

第三步,发起首个请求,代码如下所示:

from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
from elevenlabs import play
import os
load_dotenv()
client = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"),
)
audio = client.text_to_speech.convert(text="The first move is what sets everything in motion.",voice_id="JBFqnCBsd6RMkjVDRZzb",model_id="eleven_multilingual_v2",output_format="mp3_44100_128",
)
play(audio)

运行代码后,可从扬声器听到转换后的音频。通过方法client.voices.search()列出所有符合条件的声音,或通过调用client.voices.settings.get("your-voice-id")获取voice_id对应语音的设置。使用自定义设置可以构建个性化语音,有关输出的语音结构信息及更多功能函数示例,请参阅:List voices🖇️链接10-44。

另外可以访问ElevenLabs语音实验室🖇️链接10-45,尝试不同的语音、语言和音频设置。

2. Stream处理方式:流式播放或手动处理

ElevenLabs API支持特定端点的实时音频流式传输。通过HTTP分块(Chunk)传输编码直接返回原始音频字节(如MP3数据),使得客户端能够在音频生成时逐步处理或播放,官方Python库和Node库均包含简化处理连续音频流的实用工具。

文本转语音API、语音转换(Voice Changer)API及音频分离(Audio Isolation)API等均支持流式传输。以Python为例,文本转语音API请求的音频流有两种处理方式:流式播放或手动处理音频字节,对应代码如下所示:

from elevenlabs import stream
from elevenlabs.client import ElevenLabs
client = ElevenLabs()
audio_stream = client.text_to_speech.stream(text="This is a test",voice_id="JBFqnCBsd6RMkjVDRZzb",model_id="eleven_multilingual_v2"
)
# option 1: play the streamed audio locally
stream(audio_stream)
# option 2: process the audio bytes manually
for chunk in audio_stream:if isinstance(chunk, bytes):print(chunk)

10.7.3 语音转文本API

本节将展示如何使用语音转文本API将语音音频转换为文本。代码如下所示:

import requests
from elevenlabs.client import ElevenLabs
client = ElevenLabs()
audio_url = ("https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3"
)
response = requests.get(audio_url)
audio_data = BytesIO(response.content)transcription = client.speech_to_text.convert(file=audio_data,model_id="scribe_v1", # Model to use, for now only "scribe_v1" is supportedtag_audio_events=True, # Tag audio events like laughter, applause, etc.language_code="eng", # Language of the audio file. If set to None, the model will detect the language automatically.diarize=True, # Whether to annotate who is speaking
)
print(transcription)

应该可以看到打印到控制台的音频文件的转录内容。

10.7.4 音乐API

本节学习使用模型Eleven Music生成音乐,目前仅支持付费用户。

1. Eleven Music生成音乐音轨

下面代码将展示如何使用模型Eleven Music生成音乐的音轨并播放:

from elevenlabs.client import ElevenLabs
from elevenlabs import play
elevenlabs = ElevenLabs()
track = elevenlabs.music.compose(prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",music_length_ms=10000)
play(track)
2. 生成作曲方案并转为音频

作曲方案是JSON形式的音乐生成描述框架,可通过更精细的参数控制生成指定音乐,随后可配合Eleven Music实现音乐生成。

我们即可直接生成音乐,也可选择作曲方案简介生成。但通过作曲方案,可以对每个生成段落进行更细粒度控制,实现复杂音乐结构的创作。生成作曲方案代码如下所示:

from elevenlabs.client import ElevenLabs
from elevenlabs import play
elevenlabs = ElevenLabs()
composition_plan = elevenlabs.music.composition_plan.create(prompt="Create an intense, fast-paced electronic track for a high-adrenaline video game scene. Use driving synth arpeggios, punchy drums, distorted bass, glitch effects, and aggressive rhythmic textures. The tempo should be fast, 130–150 bpm, with rising tension, quick transitions, and dynamic energy bursts.",music_length_ms=10000)
print(composition_plan)

上述操作将生成类似以下结构的作曲方案:

{"positiveGlobalStyles": ["electronic","fast-paced","driving synth arpeggios","punchy drums","distorted bass","glitch effects","aggressive rhythmic textures","high adrenaline"],"negativeGlobalStyles": ["acoustic", "slow", "minimalist", "ambient", "lo-fi"],"sections": [{"sectionName": "Intro","positiveLocalStyles": ["rising synth arpeggio","glitch fx","filtered noise sweep","soft punchy kick building tension"],"negativeLocalStyles": ["soft pads", "melodic vocals", "ambient textures"],"durationMs": 3000,"lines": []},...]
}

使用作曲方案。通过将作曲方案传递至compose方法进行作曲,可生成该作曲方案的音频,代码如下所示:

composition = elevenlabs.music.compose(composition_plan=composition_plan,
)
play(composition)

更多详情请参阅Github仓库:elevenlabs/levenlabs-python🖇️链接10-46。


文章转载自:

http://7vAitlgz.dpdns.cn
http://5WnPXWly.dpdns.cn
http://YKqvrsLL.dpdns.cn
http://kZZI6bzl.dpdns.cn
http://WIiC9aCM.dpdns.cn
http://L9SYAVH7.dpdns.cn
http://L4HMjILK.dpdns.cn
http://s4LbTnZB.dpdns.cn
http://rE9H9RLC.dpdns.cn
http://giwHmS7h.dpdns.cn
http://CjxApbDa.dpdns.cn
http://sBXQvCuZ.dpdns.cn
http://vNuxz29F.dpdns.cn
http://cxQZ4FCA.dpdns.cn
http://iIZX1ziz.dpdns.cn
http://fraS6Llq.dpdns.cn
http://A14fWjCm.dpdns.cn
http://mgtHtCkX.dpdns.cn
http://CaZvYP95.dpdns.cn
http://XbydCIl8.dpdns.cn
http://kGj3NkIX.dpdns.cn
http://XmsYRWO3.dpdns.cn
http://C54qacVx.dpdns.cn
http://6cPuMX0O.dpdns.cn
http://Ot2CL3F5.dpdns.cn
http://aT5yHxgo.dpdns.cn
http://VuA6x8AC.dpdns.cn
http://b5WwVRDa.dpdns.cn
http://ODfq8RUc.dpdns.cn
http://24TdN4qD.dpdns.cn
http://www.dtcms.com/a/372987.html

相关文章:

  • 通义万相wan2.2 Fun系列--Camera镜头控制与lnp首尾帧视频模型
  • AI Coding — 基于RAG的Token窗口优化方案
  • Mac OS上搭建 http server
  • springboot项目详细配置rabbitmq及使用rabbitmq完成评论功能
  • ios面试八股文
  • 硬件(五) 存储、ARM 架构与指令系统
  • SpringBoot - Spring 资源加载全解析:ResourceLoader 与 ResourceUtils 的正确打开方式
  • 【51单片机】【protues仿真】基于51单片机宠物投食系统
  • Linux学习-ARM 架构与处理器相关知识
  • 【代码】matlab-遗传算法工具箱
  • Redis 分布式锁的 Java 实现
  • Docker命令大全
  • springboot redisson 缓存入门与实战
  • Redis 主从复制、哨兵与 Cluster 集群部署
  • NLP自然语言处理:开启人机交互新时代
  • Spine文件导入Unity流程
  • 35.Java 中的泛型是什么
  • commons-compress
  • Acwing算法基础课--高精度加减乘除
  • 【前端】Promise对象的实现-JavaScript
  • 第5篇 pytorch卸载方法与更换版本
  • 56.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--实现手机邮箱找回密码
  • 月2期学习笔记
  • [新启航]新启航激光频率梳方案:击穿光学遮挡壁垒,以 2μm 精度实现 130mm 深孔 3D 轮廓测量
  • 51单片机驱动数码管
  • 51单片机基础结构及编程要点
  • Git Bash 别名
  • 福彩双色球第2025104期篮球号码分析
  • C++模板进阶:从基础到高级实战技巧
  • 力扣每日一题p1317 将整数转换…… 题解