使用 Python,如何将 flac 流转换为 wav 流?
With Python, how can I convert a flac stream to a wav stream?
我知道我可以使用 PyAudio
将 .flac
文件转换为 .wav
文件。但我想知道我是否可以以某种方式将其作为一个流来完成,而不必保存 .wav
文件?
目前,我有:
stream = open('84-121123-0000.flac', 'rb')
但我想将该流转换为 wav
文件。任何帮助将不胜感激。澄清一下,我不想保存 .wav
文件。相反,我想保留 wav
转换内容的流。
您可以使用 pydub
库,它很容易实现您需要的功能:
from pathlib import PurePath
from pydub import AudioSegment
file_path = PurePath("test.flac")
flac_tmp_audio_data = AudioSegment.from_file(file_path, file_path.suffix[1:])
flac_tmp_audio_data.export(file_path.name.replace(file_path.suffix, "") + ".wav", format="wav")
在Linux中,可以安装ffmpeg
:
sudo apt update
sudo apt install ffmpeg
在Windows中:下载ffmpeg
在:FFMPEG Download,在Edit the system environment variables
、Path
、New
、C:\ffmpeg\bin\
然后 运行 在 Python:
import os
os.system('ffmpeg -i inputfile.flac output.wav')
您可以将此输出用作临时文件,延迟 3-5 秒。
您可以使用 pydub
执行此操作而无需保存文件,方法是使用 io.BytesIO
:
import io
from pydub import AudioSegment
flac = AudioSegment.from_file('/path/to/84-121123-0000.flac', format='flac')
stream = io.BytesIO()
flac.export(stream, format='wav')
我知道我可以使用 PyAudio
将 .flac
文件转换为 .wav
文件。但我想知道我是否可以以某种方式将其作为一个流来完成,而不必保存 .wav
文件?
目前,我有:
stream = open('84-121123-0000.flac', 'rb')
但我想将该流转换为 wav
文件。任何帮助将不胜感激。澄清一下,我不想保存 .wav
文件。相反,我想保留 wav
转换内容的流。
您可以使用 pydub
库,它很容易实现您需要的功能:
from pathlib import PurePath
from pydub import AudioSegment
file_path = PurePath("test.flac")
flac_tmp_audio_data = AudioSegment.from_file(file_path, file_path.suffix[1:])
flac_tmp_audio_data.export(file_path.name.replace(file_path.suffix, "") + ".wav", format="wav")
在Linux中,可以安装ffmpeg
:
sudo apt update
sudo apt install ffmpeg
在Windows中:下载ffmpeg
在:FFMPEG Download,在Edit the system environment variables
、Path
、New
、C:\ffmpeg\bin\
然后 运行 在 Python:
import os
os.system('ffmpeg -i inputfile.flac output.wav')
您可以将此输出用作临时文件,延迟 3-5 秒。
您可以使用 pydub
执行此操作而无需保存文件,方法是使用 io.BytesIO
:
import io
from pydub import AudioSegment
flac = AudioSegment.from_file('/path/to/84-121123-0000.flac', format='flac')
stream = io.BytesIO()
flac.export(stream, format='wav')