mp3 / fishaudio.py
hotdeem's picture
Upload 12 files
d16f2df verified
from fish_audio_sdk import Session, TTSRequest, ReferenceAudio
from pydub import AudioSegment
import io
from constants import FISHAUDIO_KEY,FISHAUDIO_SPEEKER
import random
def get_adapter_speeker_id(speaker_name):
speeker = FISHAUDIO_SPEEKER[0]
if speaker_name != "主持人":
speeker = random.choice(FISHAUDIO_SPEEKER)
return speeker["id"]
def fishaudio_tts(text, reference_id=None) -> AudioSegment:
"""
将给定的文本转换为语音并返回AudioSegment对象。
:param text: 要转换的文本
:param reference_id: 可选参数,使用的模型 ID
:return: 返回生成的语音的AudioSegment对象
"""
session = Session(FISHAUDIO_KEY)
audio_buffer = io.BytesIO()
for chunk in session.tts(TTSRequest(
reference_id=reference_id,
text=text
)):
audio_buffer.write(chunk)
audio_buffer.seek(0) # 重置缓冲区的位置
return AudioSegment.from_file(audio_buffer, format="mp3")