Код: Выделить всё
from pydub import AudioSegment, effects
def main():
main_segment = AudioSegment.from_file("123.mp3") # or any other file format that pydub supports (flv, ogg, ...)
another_segment = AudioSegment.from_file("aaa.flv") # or any other file format that pydub supports (flv, ogg, ...)
#1. get audio duration in milliseconds
duration_milliseconds = len(main_segment)
#2. change sample rate
segment_44800 = main_segment.set_frame_rate(44800)
#3. get a piece of main_segment
slice_1 = main_segment[1000:2000]
slice_2 = main_segment[2000]
slice_3 = main_segment[1000:]
#4. normalize main_segment
segment_normalized = effects.normalize(main_segment)
#5. change volume (increase +20db)
segment_plus_20_db = main_segment + 20
#6. change pan
segment_pan_changed = effects.pan(main_segment, +0.8)
#7. low pass filter
segment_low_pass_filter = effects.low_pass_filter(main_segment, 5000)
#8. high pass filter
segment_low_pass_filter = effects.high_pass_filter(main_segment, 10000)
#9. export as mp3 (or any over pydub available format)
file_handle = main_segment.export(out_f="exported.mp3", format='mp3')
#add two segments
segments_add = main_segment + another_segment
#overlay segments
segment_overlay = main_segment.overlay(another_segment, position=1000,gain_during_overlay=3)
if __name__ == "__main__":
main()
Если это легко, возможно, я бы хотел использовать gstreamer. Если это не совсем просто, какие библиотеки мне использовать? портаудио? звучит...? что-то еще? как sox?
В идеале я хотел бы создать библиотеку C++ с именем cppdub, которая имитирует pydub.
Я не хочу использовать привязки Python в C++, просто реализуйте код Python pydub в C++.
Прежде всего: может ли gstreamer выполнять всю работу, описанную в коде Python?
Если да, то как я могу установить его в среде C++ QtCreator cmake?
Подробнее здесь: https://stackoverflow.com/questions/788 ... -cmake-use
Мобильная версия