fix: 改用soundfile保存音频,解决torchaudio格式问题
This commit is contained in:
@@ -4,4 +4,5 @@ python-multipart==0.0.9
|
|||||||
torch==2.2.0
|
torch==2.2.0
|
||||||
torchaudio==2.2.0
|
torchaudio==2.2.0
|
||||||
transformers==4.38.0
|
transformers==4.38.0
|
||||||
ChatTTS==0.1.1
|
ChatTTS
|
||||||
|
soundfile==0.12.1
|
||||||
12
server.py
12
server.py
@@ -124,11 +124,15 @@ def save_audio(audio_tensor: torch.Tensor, filename: str) -> str:
|
|||||||
filepath = os.path.join(AUDIO_DIR, filename)
|
filepath = os.path.join(AUDIO_DIR, filename)
|
||||||
|
|
||||||
# 确保 tensor 正确形状
|
# 确保 tensor 正确形状
|
||||||
if audio_tensor.dim() == 1:
|
if audio_tensor.dim() == 2:
|
||||||
audio_tensor = audio_tensor.unsqueeze(0)
|
audio_tensor = audio_tensor.squeeze(0)
|
||||||
|
|
||||||
# 保存为 WAV
|
# 转换为 numpy
|
||||||
torchaudio.save(filepath, audio_tensor, SAMPLE_RATE, format="wav")
|
audio_np = audio_tensor.cpu().numpy() if audio_tensor.is_cuda else audio_tensor.numpy()
|
||||||
|
|
||||||
|
# 使用 soundfile 保存
|
||||||
|
import soundfile as sf
|
||||||
|
sf.write(filepath, audio_np, SAMPLE_RATE)
|
||||||
|
|
||||||
return filepath
|
return filepath
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user