Hướng dẫn play audio from array python - phát âm thanh từ mảng python

Tôi muốn tạo hiệu ứng "màn hình nhịp tim" từ một mảng 2D trong Numpy và muốn âm phản ánh các giá trị trong mảng.

Hướng dẫn play audio from array python - phát âm thanh từ mảng python

Jeff Lafay

12.6K13 Huy hiệu vàng72 Huy hiệu bạc99 Huy hiệu đồng13 gold badges72 silver badges99 bronze badges

hỏi ngày 27 tháng 4 năm 2012 lúc 21:17Apr 27, 2012 at 21:17

Bạn có thể sử dụng chức năng write từ scipy.io.wavfile để tạo tệp WAV mà sau đó bạn có thể phát theo cách bạn muốn. Lưu ý rằng mảng phải là số nguyên, vì vậy nếu bạn có phao, bạn có thể muốn mở rộng chúng một cách thích hợp:

import numpy as np
from scipy.io.wavfile import write

rate = 44100
data = np.random.uniform(-1, 1, rate) # 1 second worth of random samples between -1 and 1
scaled = np.int16(data / np.max(np.abs(data)) * 32767)
write('test.wav', rate, scaled)

Nếu bạn muốn Python thực sự phát âm thanh, thì trang này cung cấp một cái nhìn tổng quan về một số gói/mô -đun.

Walf

7.9312 Huy hiệu vàng40 Huy hiệu bạc58 Huy hiệu đồng2 gold badges40 silver badges58 bronze badges

Đã trả lời ngày 28 tháng 4 năm 2012 lúc 1:00Apr 28, 2012 at 1:00

Hướng dẫn play audio from array python - phát âm thanh từ mảng python

Huonhuonhuon

87.4K19 Huy hiệu vàng222 Huy hiệu bạc218 Huy hiệu Đồng19 gold badges222 silver badges218 bronze badges

4

Đối với những người đến đây vào năm 2016 Scikits.Audiolab dường như không thực sự hoạt động nữa. Tôi đã có thể nhận được một giải pháp bằng cách sử dụng SoundDevice.

import numpy as np
import sounddevice as sd

fs = 44100
data = np.random.uniform(-1, 1, fs)
sd.play(data, fs)

Đã trả lời ngày 24 tháng 5 năm 2016 lúc 21:05May 24, 2016 at 21:05

mdornfe1mdornfe1mdornfe1

1.8821 Huy hiệu vàng23 Huy hiệu bạc41 Huy hiệu đồng1 gold badge23 silver badges41 bronze badges

3

Trong Jupyter, tùy chọn tốt nhất là:

from IPython.display import Audio
wave_audio = numpy.sin(numpy.linspace(0, 3000, 20000))
Audio(wave_audio, rate=20000)

Đã trả lời ngày 21 tháng 9 năm 2016 lúc 11:31Sep 21, 2016 at 11:31

AlleoalleoAlleo

7.3812 Huy hiệu vàng39 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges39 silver badges30 bronze badges

2

Ngoài ra, bạn có thể thử Scikits.Audiolab. Nó có tệp IO và khả năng 'phát' mảng. Mảng không phải là số nguyên. Để bắt chước ví dụ của Dbaupp:

import numpy as np
import scikits.audiolab

data = np.random.uniform(-1,1,44100)
# write array to file:
scikits.audiolab.wavwrite(data, 'test.wav', fs=44100, enc='pcm16')
# play the array:
scikits.audiolab.play(data, fs=44100)

Đã trả lời ngày 30 tháng 4 năm 2012 lúc 12:10Apr 30, 2012 at 12:10

MWVMWVmwv

4.1812 Huy hiệu vàng18 Huy hiệu bạc9 Huy hiệu đồng2 gold badges18 silver badges9 bronze badges

2

Tôi đã có một số vấn đề sử dụng scikit.audiolabs, vì vậy tôi đã tìm kiếm một số tùy chọn khác cho nhiệm vụ này. Tôi đã nghĩ ra SoundDevice, có vẻ như được cập nhật hơn rất nhiều. Tôi chưa kiểm tra nếu nó hoạt động với Python 3.

Một cách đơn giản để thực hiện những gì bạn muốn là:

import numpy as np
import sounddevice as sd

sd.default.samplerate = 44100

time = 2.0
frequency = 440

# Generate time of samples between 0 and two seconds
samples = np.arange(44100 * time) / 44100.0
# Recall that a sinusoidal wave of frequency f has formula w(t) = A*sin(2*pi*f*t)
wave = 10000 * np.sin(2 * np.pi * frequency * samples)
# Convert it to wav format (16 bits)
wav_wave = np.array(wave, dtype=np.int16)

sd.play(wav_wave, blocking=True)

Đã trả lời ngày 31 tháng 5 năm 2016 lúc 18:10May 31, 2016 at 18:10

finiteautomatafiniteautomatafiniteautomata

3.6834 Huy hiệu vàng30 Huy hiệu bạc41 Huy hiệu Đồng4 gold badges30 silver badges41 bronze badges

3

Pygame có mô -đun pygame.sndarray có thể phát dữ liệu numpy dưới dạng âm thanh. Các câu trả lời khác có lẽ tốt hơn, vì pygame có thể khó khăn để đứng dậy và chạy. Sau đó, một lần nữa, Scipy và Numpy đi kèm với những khó khăn của riêng họ, vì vậy có lẽ đó không phải là một bước lớn để thêm pygame vào hỗn hợp.

http://www.pygame.org/docs/ref/sndarray.html

Đã trả lời ngày 27 tháng 11 năm 2013 lúc 20:38Nov 27, 2013 at 20:38

BryanbryanBryan

4405 Huy hiệu bạc14 Huy hiệu đồng5 silver badges14 bronze badges

Một giải pháp hiện đại và thuận tiện khác là sử dụng pysoundfile, có thể đọc và viết một loạt các định dạng tệp âm thanh:

import numpy as np
import soundfile as sf

data = np.random.uniform(-1, 1, 44100)
sf.write('new_file.wav', data, 44100)

Đã trả lời ngày 17 tháng 6 năm 2019 lúc 7:17Jun 17, 2019 at 7:17

Nils Wernernils WernerNils Werner

33.2K7 Huy hiệu vàng72 Huy hiệu bạc95 Huy hiệu Đồng7 gold badges72 silver badges95 bronze badges

Không chắc chắn về các chi tiết về cách bạn sẽ tạo ra âm thanh từ mảng, nhưng tôi đã tìm thấy MPG321 là một trình phát âm thanh lệnh tuyệt vời và có khả năng có thể làm việc cho bạn.

Tôi sử dụng nó làm người chơi lựa chọn của tôi cho Anki, được viết bằng Python và có các thư viện có thể là nơi khởi đầu tuyệt vời để giao tiếp mã/mảng của bạn với âm thanh.

Thủ tục thanh toán:

  • anki.sound.py
  • customPlayer.py

Đã trả lời ngày 12 tháng 12 năm 2012 lúc 18:06Dec 12, 2012 at 18:06

Ryanjdillonryanjdillonryanjdillon

16.6K9 Huy hiệu vàng82 Huy hiệu bạc104 Huy hiệu đồng9 gold badges82 silver badges104 bronze badges

Làm cách nào để phát một tệp âm thanh trong Python?

Python3.Phương thức play () được sử dụng để phát các tệp âm thanh.Đối số chặn nói rằng âm thanh sẽ phát không đồng bộ.The play() method is used to play the audio files. The blocking argument states that the sound will play asynchronously.

Làm thế nào để ghi lại âm thanh bằng pyaudio?

Chơi và ghi lại các tệp âm thanh..
Để sử dụng pyaudio, pyaudio khởi tạo đầu tiên bằng pyaudio.Pyaudio (), thiết lập hệ thống portaudio ..
Để ghi hoặc phát âm thanh, hãy mở một luồng trên thiết bị mong muốn với các tham số âm thanh mong muốn bằng pyaudio.Pyaudio.....
Phát âm thanh bằng cách viết dữ liệu âm thanh vào luồng bằng pyaudio ..

Làm thế nào để bạn nhập âm thanh vào Python?

Trong chương này, bạn sẽ học cách sử dụng thư viện hữu ích này để đảm bảo tất cả các tệp âm thanh của bạn ở đúng hình dạng để phiên âm ...
Giới thiệu về Pydub.....
Nhập tệp âm thanh với Pydub ..
Phát một tệp âm thanh với pydub ..
Tham số âm thanh với pydub ..
Điều chỉnh các tham số âm thanh ..
Thao tác với các tệp âm thanh với pydub ..