Gradio全解10------Streaming:流式传输的音频应用(7)------ElevenLabs:高级智能语音技术
-
- [10.7 ElevenLabs:高级智能语音技术](#10.7 ElevenLabs:高级智能语音技术)
-
- [10.7.1 核心功能与可用模型](#10.7.1 核心功能与可用模型)
-
- [1. 核心功能与产品](#1. 核心功能与产品)
- [2. 三类语音模型](#2. 三类语音模型)
- [10.7.2 文本转语音API](#10.7.2 文本转语音API)
-
- [1. 完整操作步骤](#1. 完整操作步骤)
- [2. Stream处理方式:流式播放或手动处理](#2. Stream处理方式:流式播放或手动处理)
- [10.7.3 语音转文本API](#10.7.3 语音转文本API)
- [10.7.4 音乐API](#10.7.4 音乐API)
-
- [1. Eleven Music生成音乐音轨](#1. Eleven Music生成音乐音轨)
- [2. 生成作曲方案并转为音频](#2. 生成作曲方案并转为音频)
本章目录如下:
- 《Gradio全解10------Streaming:流式传输的音频应用(1)------自动语音识别技术(ASR)》
- 《Gradio全解10------Streaming:流式传输的音频应用(2)------使用本地部署的Mini-Omni模型构建对话式聊天机器人》
- 《Gradio全解10------Streaming:流式传输的音频应用(3)------HF Inference:在推理客户端运行推理服务》
- 《Gradio全解10------Streaming:流式传输的音频应用(4)------Spaces ZeroGPU:为Spaces提供动态GPU分配方案》
- 《Gradio全解10------Streaming:流式传输的音频应用(5)------Mistral-7B实现流式传输音频:魔力8号球》
- 《Gradio全解10------Streaming:流式传输的音频应用(6)------基于Groq的带自动语音检测功能的Gradio应用》
- 《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:
bash
ELEVENLABS_API_KEY=<your_api_key_here>
第二步,安装SDK。除了elevenlabs,还将使用dotenv库从环境变量加载API密钥,安装命令如下所示:
python
pip install elevenlabs python-dotenv
若需通过扬声器播放音频,系统可能会提示安装MPV(🖇️链接10-43)或ffmpeg。
第三步,发起首个请求,代码如下所示:
python
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请求的音频流有两种处理方式:流式播放或手动处理音频字节,对应代码如下所示:
python
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将语音音频转换为文本。代码如下所示:
python
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 supported
tag_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生成音乐的音轨并播放:
python
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实现音乐生成。
我们即可直接生成音乐,也可选择作曲方案简介生成。但通过作曲方案,可以对每个生成段落进行更细粒度控制,实现复杂音乐结构的创作。生成作曲方案代码如下所示:
python
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)
上述操作将生成类似以下结构的作曲方案:
bash
{
"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方法进行作曲,可生成该作曲方案的音频,代码如下所示:
python
composition = elevenlabs.music.compose(
composition_plan=composition_plan,
)
play(composition)
更多详情请参阅Github仓库:elevenlabs/levenlabs-python🖇️链接10-46。