Библиотека Python, которая напрямую производит звук - PullRequest
0 голосов
/ 16 июня 2019

Я хочу написать программу на Python, которая воспроизводит случайную музыку. Есть ли какая-либо библиотека, которая может напрямую воспроизводить звук с заданной высотой или частотой в течение заданного времени? Например, play(440, 4) должен сыграть ноту A в течение 4 секунд.

Я нашел несколько библиотек, которые могут делать то, что я сказал, но они не воспроизводят музыку напрямую: вам нужно создать файл .wav и затем воспроизвести этот файл. Если я не найду библиотеку, которая делает то, что я хочу, я создам файл, воспроизведу его и удалю для каждой заметки, но я думаю, что было бы проще сделать это напрямую.

1 Ответ

1 голос
/ 16 июня 2019

Я наконец-то нашел ответ на свой вопрос.

Есть модуль с именем winsound (https://docs.python.org/3/library/winsound.html), который может воспроизводить звук с заданной частотой и длительностью: winsound.Beep(frequency, duration). Но проблема в том, что он не кроссплатформенный, работает только для Windows операционные системы.

Итак, я нашел другой модуль с именем pyaudiere (https://pypi.org/project/pyaudiere/)), который является кроссплатформенным. Он немного отличается от winsound. Сначала вы создаете устройство: d = audiere.open_device(). Затем вы Вы можете создать тональный сигнал, используя t = d.create_tone(440). Для воспроизведения тонального сигнала вы выполняете t.play() и останавливаете его t.stop(). Если вы хотите воспроизвести его в течение нескольких секунд, вы можете использовать модуль time. Я думаю, что это работает только для Python 2. Это сообщение о переполнении стека, в котором я нашел ответ: Библиотека Python для воспроизведения звука с фиксированной частотой .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...