Allow reading of audio files via str path
This commit is contained in:
parent
4fc60bf5e9
commit
31b9280194
@ -500,7 +500,8 @@ def write_wav(wav_file, pcm_data, audio_format=DEFAULT_FORMAT):
|
||||
|
||||
|
||||
def read_wav(wav_file):
|
||||
wav_file.seek(0)
|
||||
if not type(wav_file) is str:
|
||||
wav_file.seek(0)
|
||||
with wave.open(wav_file, "rb") as wav_file_reader:
|
||||
audio_format = read_audio_format_from_wav_file(wav_file_reader)
|
||||
pcm_data = wav_file_reader.readframes(wav_file_reader.getnframes())
|
||||
@ -530,7 +531,8 @@ def write_audio(
|
||||
|
||||
|
||||
def read_wav_duration(wav_file):
|
||||
wav_file.seek(0)
|
||||
if not type(wav_file) is str:
|
||||
wav_file.seek(0)
|
||||
with wave.open(wav_file, "rb") as wav_file_reader:
|
||||
return wav_file_reader.getnframes() / wav_file_reader.getframerate()
|
||||
|
||||
@ -542,13 +544,18 @@ def read_opus_duration(opus_file):
|
||||
|
||||
def read_ogg_opus_duration(ogg_file):
|
||||
error = ctypes.c_int()
|
||||
ogg_file_buffer = ogg_file.getbuffer()
|
||||
ubyte_array = ctypes.c_ubyte * len(ogg_file_buffer)
|
||||
opusfile = pyogg.opus.op_open_memory(
|
||||
ubyte_array.from_buffer(ogg_file_buffer),
|
||||
len(ogg_file_buffer),
|
||||
ctypes.pointer(error),
|
||||
)
|
||||
if type(ogg_file) is str:
|
||||
opusfile = pyogg.opus.op_open_file(
|
||||
bytes(ogg_file, encoding="utf-8"), ctypes.pointer(error)
|
||||
)
|
||||
else:
|
||||
ogg_file_buffer = ogg_file.getbuffer()
|
||||
ubyte_array = ctypes.c_ubyte * len(ogg_file_buffer)
|
||||
opusfile = pyogg.opus.op_open_memory(
|
||||
ubyte_array.from_buffer(ogg_file_buffer),
|
||||
len(ogg_file_buffer),
|
||||
ctypes.pointer(error),
|
||||
)
|
||||
|
||||
if error.value != 0:
|
||||
raise ValueError(
|
||||
@ -575,7 +582,8 @@ def read_duration(audio_type, audio_file):
|
||||
|
||||
|
||||
def read_wav_format(wav_file):
|
||||
wav_file.seek(0)
|
||||
if not type(wav_file) is str:
|
||||
wav_file.seek(0)
|
||||
with wave.open(wav_file, "rb") as wav_file_reader:
|
||||
return read_audio_format_from_wav_file(wav_file_reader)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user