From 2ae0f66d0d3277086cfab68a7ca4c176ccfbced5 Mon Sep 17 00:00:00 2001 From: zhoupc2015 Date: Wed, 21 Sep 2022 13:24:51 +0800 Subject: [PATCH] Solve "unknown format: 3" (#2422) * Solve execute the following code with return wav: iob = io.BytesIO(wav) wave.open(iob, 'rb') will throw an "unknown format: 3" exception --- paddlespeech/server/engine/tts/paddleinference/tts_engine.py | 4 ++-- paddlespeech/server/engine/tts/python/tts_engine.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/paddlespeech/server/engine/tts/paddleinference/tts_engine.py b/paddlespeech/server/engine/tts/paddleinference/tts_engine.py index 43b0df40..2878c852 100644 --- a/paddlespeech/server/engine/tts/paddleinference/tts_engine.py +++ b/paddlespeech/server/engine/tts/paddleinference/tts_engine.py @@ -22,7 +22,6 @@ import librosa import numpy as np import paddle import soundfile as sf -from scipy.io import wavfile from paddlespeech.cli.log import logger from paddlespeech.cli.tts.infer import TTSExecutor @@ -409,7 +408,8 @@ class PaddleTTSConnectionHandler(TTSServerExecutor): # wav to base64 buf = io.BytesIO() - wavfile.write(buf, target_fs, wav_speed) + sf.write(buf, wav_speed, target_fs, format="wav") + buf.seek(0) base64_bytes = base64.b64encode(buf.read()) wav_base64 = base64_bytes.decode('utf-8') logger.debug("Audio to string successfully.") diff --git a/paddlespeech/server/engine/tts/python/tts_engine.py b/paddlespeech/server/engine/tts/python/tts_engine.py index 4d180100..356962bd 100644 --- a/paddlespeech/server/engine/tts/python/tts_engine.py +++ b/paddlespeech/server/engine/tts/python/tts_engine.py @@ -20,7 +20,6 @@ import librosa import numpy as np import paddle import soundfile as sf -from scipy.io import wavfile from paddlespeech.cli.log import logger from paddlespeech.cli.tts.infer import TTSExecutor @@ -173,7 +172,9 @@ class PaddleTTSConnectionHandler(TTSServerExecutor): # wav to base64 buf = io.BytesIO() - wavfile.write(buf, target_fs, wav_speed) + sf.write(buf, wav_speed, target_fs, format="wav") + buf.seek(0) + base64_bytes = base64.b64encode(buf.read()) wav_base64 = base64_bytes.decode('utf-8') logger.debug("Audio to string successfully.") -- GitLab