Animal Animation Based on Audio Waveform in Python

Şu şekilde yanıtlandı GPT-4o Mini tarafından GPT4oMini.app

Soru:

Ses kaydının dalgasına göre hayvanlı bir animasyon ekolayzır kodla

Yanıt:

Ses kaydının dalgasına göre hayvanlı bir animasyon oluşturmak için Python programlama dilini ve bazı kütüphaneleri kullanabilirsiniz. Aşağıda, pyaudio ve matplotlib kütüphanelerini kullanarak ses kaydını dalga formu olarak çizen ve basit bir hayvan animasyonu ekleyen bir örnek kod verilmiştir. Bu örnek, ses kaydını alır ve dalga formunu çizerken, belirli bir frekansa göre bir hayvan animasyonu gösterir.

Öncelikle gerekli kütüphaneleri yüklemeniz gerekiyor:

pip install pyaudio numpy matplotlib

Aşağıdaki kod, ses kaydını alır ve dalga formunu çizerken basit bir hayvan animasyonu ekler:

import numpy as np
import pyaudio
import matplotlib.pyplot as plt
import matplotlib.animation as animation

# Ses kaydı ayarları
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024

# PyAudio nesnesi oluştur
p = pyaudio.PyAudio()

# Ses akışını başlat
stream = p.open(format=FORMAT, channels=CHANNELS,
                rate=RATE, input=True,
                frames_per_buffer=CHUNK)

# Animasyon için figür oluştur
fig, ax = plt.subplots()
x = np.arange(0, 2 * CHUNK, 2)
line, = ax.plot(x, np.random.rand(CHUNK), lw=2)

# Hayvan animasyonu için basit bir şekil
animal = plt.Circle((0, 0), 0.1, color='blue')
ax.add_artist(animal)

# Eksen ayarları
ax.set_ylim(-1, 1)
ax.set_xlim(0, 2 * CHUNK)

def update(frame):
    # Ses verilerini oku
    data = stream.read(CHUNK)
    data_int = np.frombuffer(data, dtype=np.int16)
    
    # Dalga formunu güncelle
    line.set_ydata(data_int / 32768.0)  # Normalize et

    # Hayvanın konumunu güncelle
    animal.set_center((frame % 200 / 100.0 - 1, data_int.mean() / 32768.0))

    return line, animal

# Animasyonu başlat
ani = animation.FuncAnimation(fig, update, frames=np.arange(0, 200), blit=True)

plt.show()

# Akışı durdur ve kapat
stream.stop_stream()
stream.close()
p.terminate()

Açıklamalar:

  1. Ses Kaydı: pyaudio kütüphanesi kullanılarak ses kaydı yapılır.
  2. Dalga Formu: matplotlib kullanılarak ses dalga formu çizilir.
  3. Hayvan Animasyonu: Basit bir daire (hayvan) eklenir ve ses dalgasının ortalamasına göre yukarı ve aşağı hareket ettirilir.
  4. Animasyon: FuncAnimation ile animasyon oluşturulur.

Bu kodu çalıştırmadan önce, ses kaynağınızın doğru ayarlandığından emin olun. Ayrıca, bu kod sadece basit bir örnektir; daha karmaşık animasyonlar ve hayvanlar için daha fazla grafik ve animasyon kütüphanesi kullanabilirsiniz.