Заголовок, по сути. Я хочу иметь возможность загружать аудиофайл (например, с помощью PyDub), а затем отображать его образцы в виде сигнала. Однако я не хочу, чтобы этот сигнал был статичным — программа должна позволять мне произвольно увеличивать и уменьшать его масштаб. Кроме того, я хочу включить функционально базовое взаимодействие, которое позволит мне создать своего рода «маркер», который я смогу разместить в произвольной части звуковой дорожки, переместить ее ( перетаскивая его вокруг оси времени) и удаляйте по мере необходимости.
Конечно, эта программа требует некоторого дополнительного графического интерфейса, поэтому изначально я выбрал TkInter, поскольку включение Canvas казалось подходящим способом решить проблему рисования формы волны. Однако с этой опцией, похоже, есть некоторые проблемы:
Когда уровень масштабирования достигает отдельных сэмплов (например, масштабирование до нескольких миллисекунд дорожки ), их отображение должно отличаться от отображения при сжатии нескольких секунд/минут — точно так же, как в Audacity. Другими словами, небольшое количество выборок должно быть составлено другим способом. Поэтому функция Canvas .zoom(...) не подходит.
При масштабировании Если длинный аудиофайл (например, длительностью в час) составляет всего несколько миллисекунд, то абсолютно неэффективно визуализировать весь оставшийся фрагмент семпла. Поэтому я подумал о создании «статического» холста, который бы отображал только видимую часть звука. С помощью простой математики мне удалось это реализовать, и я мог прокручивать и масштабировать изображение по своему желанию. Проблема, однако, заключается в том, что по сути приходится перерисовывать холст каждый раз, когда я перемещаю полосу прокрутки или увеличиваю или уменьшаю масштаб. Судя по тому, что я читал, методы TkInter, такие как create_line(...), не являются «нарисовать и забыть» — вместо этого они каким-то образом «хранят» эти объекты, и при таком подходе они ужасно медленны и засоряют. память.
Подход «перерисовки», кажется, трудно сочетать с взаимодействием «маркера», о котором я упоминал ранее.
Я в тупике. Буду очень признателен за любые предложения по реализации этой функции. Достижима ли эта цель с помощью TkInter, или у вас есть другие предложения по библиотекам?
Заголовок, по сути. Я хочу иметь возможность загружать аудиофайл (например, с помощью PyDub), а затем отображать его образцы в виде сигнала. Однако я не хочу, чтобы этот сигнал был статичным — программа должна позволять мне произвольно увеличивать и уменьшать его масштаб. Кроме того, я хочу включить функционально базовое взаимодействие, которое позволит мне создать своего рода «маркер», который я смогу разместить в произвольной части звуковой дорожки, переместить ее ( перетаскивая его вокруг оси времени) и удаляйте по мере необходимости. Конечно, эта программа требует некоторого дополнительного графического интерфейса, поэтому изначально я выбрал TkInter, поскольку включение Canvas казалось подходящим способом решить проблему рисования формы волны. Однако с этой опцией, похоже, есть некоторые проблемы: [list] [*]Когда уровень масштабирования достигает отдельных сэмплов (например, масштабирование до нескольких миллисекунд дорожки ), их отображение должно отличаться от отображения при сжатии нескольких секунд/минут — точно так же, как в Audacity. Другими словами, небольшое количество выборок должно быть составлено другим способом. Поэтому функция Canvas .zoom(...) не подходит.
[*]При масштабировании Если длинный аудиофайл (например, длительностью в час) составляет всего несколько миллисекунд, то абсолютно неэффективно визуализировать весь оставшийся фрагмент семпла. Поэтому я подумал о создании «статического» холста, который бы отображал только видимую часть звука. С помощью простой математики мне удалось это реализовать, и я мог прокручивать и масштабировать изображение по своему желанию. Проблема, однако, заключается в том, что по сути приходится перерисовывать холст каждый раз, когда я перемещаю полосу прокрутки или увеличиваю или уменьшаю масштаб. Судя по тому, что я читал, методы TkInter, такие как create_line(...), не являются «нарисовать и забыть» — вместо этого они каким-то образом «хранят» эти объекты, и при таком подходе они ужасно медленны и засоряют. память.
[*]Подход «перерисовки», кажется, трудно сочетать с взаимодействием «маркера», о котором я упоминал ранее.
[/list] Я в тупике. Буду очень признателен за любые предложения по реализации этой функции. Достижима ли эта цель с помощью TkInter, или у вас есть другие предложения по библиотекам?
Я хочу иметь возможность загружать аудиофайл (например, с помощью PyDub), а затем отображать его образцы в виде сигнала. Однако я не хочу, чтобы этот сигнал был статичным — программа должна позволять мне произвольно увеличивать и уменьшать его...
Я хочу записывать/прослушивать звук из определенного приложения Windows, в моем случае Discord, я хочу знать, когда люди разговаривают в Discord, а когда они разговаривают, делать что-то еще, я пробовал API Discord, но у них есть свои проблемы,...
У меня есть несколько проектов Audacity aup3, которые я хотел бы экспортировать в формат aiff. Попробовал макросы Audacity, но похоже их нельзя применить к файлам aup3. В документации предлагается использовать сценарии Python.
Я работал с LLM над...
Я пытаюсь написать сценарий Python, который загружает смелость с несколькими аудиофайлами в одном окне. До сих пор я смог сделать это, но вместо того, чтобы открыть оба аудиофайла в одном и том же окне, открываются 2 независимые окна Audacity, по...
Я пытаюсь написать сценарий Python, который загружает смелость с несколькими аудиофайлами в одном окне. До сих пор я смог сделать это, но вместо того, чтобы открыть оба аудиофайла в одном и том же окне, открываются 2 независимые окна Audacity, по...