ElevenLabsLib是否具备保存/导出功能?如何自动保存生成的音频
解决ElevenLabs音频保存到指定文件夹的问题
elevenlabslib库本身就支持直接保存音频,不需要借助pydub,你之前的代码错误在于类型不匹配——把voice对象传给了需要文件路径/字节流的AudioSegment.from_file()方法。
正确实现代码(两种方式)
方式1:直接生成并保存(推荐)
from elevenlabslib import ElevenLabsUser # 初始化用户(替换为你的API密钥) user = ElevenLabsUser("你的API密钥") # 获取目标语音 voice = user.get_voices_by_name("Elli")[0] # 保存路径(注意用原始字符串r""避免转义字符问题,且要指定文件名) save_location = r"C:\Users\BattleShip\Desktop\work\Voices\test_audio.wav" # 调用内置方法直接生成并保存音频 voice.generate_and_save_audio( "This is a Test. This means it is working.", save_path=save_location, play_in_background=False )
方式2:先获取音频字节再手动保存
如果需要对音频数据做额外处理,可以先获取字节流再写入文件:
from elevenlabslib import ElevenLabsUser user = ElevenLabsUser("你的API密钥") voice = user.get_voices_by_name("Elli")[0] save_location = r"C:\Users\BattleShip\Desktop\work\Voices\test_audio.wav" # 获取音频字节数据 audio_bytes = voice.generate_audio_bytes("This is a Test. This means it is working.") # 写入文件 with open(save_location, "wb") as audio_file: audio_file.write(audio_bytes)
你之前代码的问题说明
voice.generate_and_play_audio仅负责播放音频,不会返回可用于后续处理的音频数据AudioSegment.from_file()要求传入文件路径、文件对象或字节流,你传入的voice是语音实例,类型不匹配导致报错
内容的提问来源于stack exchange,提问作者Electro
相关产品推荐
相关产品推荐

