mirror of
https://github.com/TMElyralab/MuseTalk.git
synced 2026-02-04 17:39:20 +08:00
17 lines
718 B
Python
17 lines
718 B
Python
import os, subprocess
|
|
|
|
def ensure_wav(input_path: str, target_path: str | None = None) -> str:
|
|
"""
|
|
Convert any audio (mp3/ogg/m4a/wav/…) to 16kHz mono PCM WAV via ffmpeg.
|
|
Returns path to the converted .wav (original if already correct).
|
|
"""
|
|
if not isinstance(input_path, str) or not os.path.exists(input_path):
|
|
return input_path
|
|
base, ext = os.path.splitext(input_path)
|
|
ext = ext.lower()
|
|
|
|
if target_path is None:
|
|
target_path = base + "_16k.wav"
|
|
cmd = ["ffmpeg", "-y", "-i", input_path, "-ar", "16000", "-ac", "1", "-c:a", "pcm_s16le", target_path]
|
|
subprocess.run(cmd, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
|
return target_path |