Библиотека Python, которая может генерировать звуки, играющие инструменты в основном на гитаре и фортепиано. Он использует Pyaudio в качестве своего зависимости.
Вам просто нужно знать базовый синтаксис Python, чтобы использовать эту библиотеку.
Если на вашей машине ранее вы никогда не устанавливали Pyaudio, сделайте это:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
Скачать двоичные файлы отсюда
Теперь сделай это
pip install PyAudio‑0.2.11‑cp39‑cp39m‑win_amd64.whl
Затем
python3 -m pip install PyMusic-Instrument
Играя на фортепиано ноты.
from Instrument import Instrument
piano = Instrument ( bit_rate = 44100 )
piano . record_key ( 52 , duration = 0.3 ) # C5
piano . record_chord ([( 52 , 56 , 61 )], duration = 0.3 ) # C5 E5 A5
piano . play ()
piano . close () # Terminates PyAudioИграя на гитарных струнах.
guitar = Instrument ( 44100 )
guitar . record_key ( 25 , duration = 0.5 ) # A
guitar . play ()
guitar . clear_sample () # clears the sample
guitar . close ()Вы можете посмотреть здесь ключевые номера для соответствующей частоты.
В качестве альтернативы вы также можете построить график
import matplotlib . pyplot as plt
key_colors = { 40 : [ "red" , 1 ], 42 : [ "blue" , 1 ], 44 : [ "green" , 1 ], 45 : [ "gray" , 1 ],
47 : [ "orange" , 1 ], 35 : [ "purple" , 1 ], (( 51 , 56 , 61 ),): [ 'black' , 1 ]}
# piano.graphing sample contains key, time take as an array, wave equation as an array.
for key , time , wave in piano . graphing_sample :
if key_colors [ key ][ 1 ]:
plt . plot ( time , wave , label = key , color = key_colors [ key ][ 0 ])
key_colors [ key ][ 1 ] = 0
else :
plt . plot ( time , wave , color = key_colors [ key ][ 0 ])
plt . show ()Или спектограмм
import librosa . display
amplitude = librosa . stft ( piano . sample )
db = librosa . amplitude_to_db ( abs ( amplitude ))
plt . figure ( figsize = ( 14 , 5 ))
librosa . display . specshow ( db , sr = 44100 , x_axis = 'time' , y_axis = 'hz' )
plt . colorbar ()
plt . show ()https://pymusic-instrument.readthedocs.io/en/latest/