1. Táirgí
  2.   Fuaime
  3.   Python
  4.   Aubio
 
  

Anailís Fuaime agus Ceoil i bhFíor-Am trí Leabharlann Python Saor

Is leabharlann próiseála fuaime Python foinse oscailte é Aubio a úsáideann forbróirí bogearraí le haghaidh bhrath ton, rianú bhlúth, bailiú MFCC, agus próiseáil fuaime i bhFíor-Am.

Cad é Aubio?

Éilíonn feidhmchláir fuaime nua-aimseartha—mar shampla uirlisí táirgthe ceoil, ardáin anailíse fuaime, agus córais próiseála fuaime i bhFíor-Am—bealaí éifeachtacha chun comharthaí fuaime a anailísiú. Réiteach oscailte coitianta don sprioc seo ná Aubio, leabharlann éadrom ach cumhachtach atá deartha chun faisnéis bhríoch ó chomharthaí fuaime a bhaint. Is leabharlann oscailte é Aubio atá deartha chun nótaí agus gnéithe ceoil a bhaint as comharthaí fuaime. Déanann sé anailís ar shruthanna fuaime agus aithníonn sé imeachtaí ar nós tosaigh nótaí, tonn, buill, agus luas. Tá sé scríofa go príomha i C chun feidhmíocht ard a sholáthar agus oibríonn sé ar Linux, macOS, agus Windows.

Tá an leabharlann an-éasca le láimhseáil agus tacaíonn sí le próiseáil fuaime i bhreal-am. Is féidir leis an leabharlann imeachtaí ceoil a bhrath mar nuair a tharlaíonn buille druma, minicíocht nóta ceoil agus an luas nó rithim rian. Is féidir leis feidhmiú ar líne (comhaid fuaime) agus i sruthanna fuaime i bhreal-am, rud a fhágann go bhfuil sí oiriúnach do eagarthóirí fuaime, ionstraimí digiteacha, agus uirlisí anailíse fuaime. Le tacaíocht do bhrath tonn, rianú bhlúth, brath tosaithe, asbhainteacht MFCC, agus próiseáil comhartha i bhreal-am, soláthraíonn sí d'fhorbróirí na huirlisí riachtanach chun feidhmchláir fuaime chun cinn a thógáil.

Previous Next

Ag Tosú le Aubio

Is é an bealach is éasca chun Aubio a shuiteáil ná an Python Package Index (PyPI) a úsáid. Úsáid an t-ordú seo a leanas le haghaidh suiteála iomlána, le do thoil.

Suiteáil ag baint úsáide as Aubio

pip install aubio 

Suiteáil Aubio ó GitHub

go get -u github.com/aubio/aubio.git 

Braite Tosaigh trí Python

Ceann de na gnéithe is úsáideacha den leabharlann Aubio ná braiteacht tosaigh, a aithníonn cathain a thosaíonn nóta ceoil nó eachtra fuaime. Aimsíonn braiteacht tosaigh an nóiméad cruinn a thosaíonn fuaim nua nó nóta ceoil. Sa cheol, is é "tosaigh" ionsaí nóta — an nóiméad a bhuaileann druma, a tharraingt giotár, nó a thosaíonn guth le siolla. Cuimsíonn Aubio algairimí éagsúla braiteachta tosaigh le haghaidh cásanna úsáide éagsúla. Léiríonn an sampla thíos conas Tosaigh a bhrath laistigh de chomhad fuaime ag baint úsáide as cód Python.

Conas Tosaigh a Bhrathú i gComhad Fuaime trí Leabharlann Python?


import aubio
import numpy as np

# Configuration
filename = "audio_sample.wav"
win_s = 512        # FFT window size
hop_s = 256        # Hop size (frames between analysis windows)

# Open the audio source
src = aubio.source(filename, hop_size=hop_s)
samplerate = src.samplerate

# Create the onset detector (using 'complex' method)
onset = aubio.onset("complex", win_s, hop_s, samplerate)

# Set detection threshold (0.0 to 1.0 — lower = more sensitive)
onset.set_threshold(0.3)

onsets = []

# Process audio frame by frame
while True:
    samples, read = src()                # Read one hop of audio
    if onset(samples):                   # Returns True when onset detected
        print(f"Onset at: {onset.get_last_s():.3f} seconds")
        onsets.append(onset.get_last_s())
    if read < hop_s:                     # End of file
        break

print(f"\nTotal onsets detected: {len(onsets)}")

Tacaíocht Braite Tonn

Is cumas tábhachtach eile den leabharlann foinse oscailte Aubio é braiteacht tonn. Aithníonn braiteacht tonn an frecúint bhunúsach (F0) de fhuaim — i ndáiríre, "cén nóta ceoil é seo?" Is é seo croí aon thuner, bailitheoir mélodach, nó uirlis anailíse gutha. Tacaíonn Aubio le roinnt algairimí braiteachta tonn mar yin, yinfft, mcomb, fcomb, srl. Seo sampla simplí a léiríonn conas braiteacht tonn fíor-ama a dhéanamh laistigh de fheidhmchláir Python.

Conas Braith Tonn i bhFíor-Am trí Python?


import aubio
import numpy as np

samplerate = 44100
win_s = 1024
hop_s = 512

pitch_o = aubio.pitch("yin", win_s, hop_s, samplerate)
pitch_o.set_unit("Hz")
pitch_o.set_silence(-40)

samples = np.random.rand(hop_s).astype(np.float32)
pitch = pitch_o(samples)

print("Detected pitch:", pitch)

Rianú Ráta agus Braite Bhrú trí Python

Is féidir le leabharlann foinse oscailte Aubio patrúin rithimí a anailísiú agus buill agus luas ama a bhrath i gceol laistigh de fheidhmchláir Python. Is féidir le Aubio fuaim a éisteacht agus tapáil a dhéanamh — ag brath an luas ama i BPM (buill in aghaidh an nóiméid) agus marcanna ama aonair a shonrú. Tá sé seo luachmhar do gach rud ó bhogearraí DJ go sioncrónú ceoil. Socraíonn an leabharlann suíomhanna na mbuill trí athruithe spéctrúla agus patrúin rithimí sa chomhartha fuaime.

Léamh agus Scríobh Comhad Fuaime trí Python

Timpeallann leabharlann Python Aubio I/O comhad fuaime trína réadaí foinse agus sink, ag tacú le formáidí iolracha (WAV, FLAC, OGG, MP3 trí libav nó ffmpeg) agus ag láimhseáil tiontú ráta sampla go huathoibríoch. Seo sampla simplí a thaispeánann conas is féidir le forbróirí bogearraí comhad fuaime a léamh, a phróiseáil, agus a scríobh ag baint úsáide as orduithe Python.

Conas Comhaid Fuaime a Léamh, a Phróiseáil, agus a Scríobh trí Python?


import aubio
import numpy as np

input_file = "input.wav"
output_file = "output.wav"
target_samplerate = 22050    # Downsample to 22.05 kHz
hop_s = 512

# Open source — resamples automatically to target samplerate
src = aubio.source(input_file, samplerate=target_samplerate, hop_size=hop_s)
actual_sr = src.samplerate
num_channels = src.channels

# Open sink for writing
sink = aubio.sink(output_file, actual_sr, channels=1)

while True:
    samples, read = src()

    # Write mono (sink expects 1D array for mono output)
    if num_channels > 1:
        mono = samples.reshape(num_channels, -1).mean(axis=0)
    else:
        mono = samples

    sink(mono[:read], read)

    if read < hop_s:
        break

del sink   # Flushes and closes file
print(f"Written {output_file} at {actual_sr} Hz")

 Gaeilge