Skip to content

Commit 37eb95a

Browse files
committed
convert np.array to wav file
1 parent eef8ed1 commit 37eb95a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/service/voice.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1+
import base64
12
from concurrent.futures import thread
23
from enum import Enum
34
import gc
5+
import io
46
import multiprocessing as mp
57
import os
68
import queue
79
import threading
810
import time
911
import numpy as np
1012
from scipy.io import wavfile
13+
import soundfile as sf
1114

1215
from src.api.api import ServiceNames, TaskStatus, VoiceCloneProgress
1316

@@ -73,7 +76,10 @@ def clone(self, params: dict):
7376
else:
7477
try:
7578
sampling_rate = result.items[0][0]
76-
audio = np.concatenate([item[1] for item in result.items])
79+
data = np.concatenate([item[1] for item in result.items])
80+
buffer = io.BytesIO()
81+
sf.write(buffer, data, sampling_rate, format="WAV")
82+
audio = base64.b64encode(buffer.getvalue()).decode("utf-8")
7783
return EaseVoiceResponse(ResponseStatus.SUCCESS, "Voice cloned successfully", {"sampling_rate": sampling_rate, "audio": audio})
7884
except Exception as e:
7985
logger.error(f"failed to clone voice for {params}, error: {e}", exc_info=True)

0 commit comments

Comments
 (0)