This shows you the differences between two versions of the page.
pm:prj2023:avaduva:arduino-ipod [2023/05/27 13:51] cosmin.petolea |
pm:prj2023:avaduva:arduino-ipod [2023/05/27 15:27] (current) cosmin.petolea |
||
---|---|---|---|
Line 114: | Line 114: | ||
* Audio Frequency = 16000 Hz | * Audio Frequency = 16000 Hz | ||
* Audio Channels = Mono | * Audio Channels = Mono | ||
+ | |||
+ | Pentru a seta acest format audio în mod automat melodiilor, am creat un script de Python care primește folder-ul de melodii în orice format (mp3, flac etc.) și le setează ca mai sus. | ||
+ | === Script Python WAV === | ||
+ | <code python> | ||
+ | from pydub import AudioSegment | ||
+ | import os | ||
+ | |||
+ | path = input("Path: ") | ||
+ | if not os.path.exists("wav_out"): | ||
+ | os.mkdir("wav_out") | ||
+ | |||
+ | def convert_audio(file): | ||
+ | audio = AudioSegment.from_file(os.path.join(path, file)) | ||
+ | |||
+ | # Set channels to mono | ||
+ | audio = audio.set_channels(1) | ||
+ | |||
+ | # Set frame_rate (frequency) to 16000 | ||
+ | audio = audio.set_frame_rate(16000) | ||
+ | |||
+ | # Set sample_width (bit resolution) to 8 | ||
+ | audio = audio.set_sample_width(1) # 1 byte = 8 bit | ||
+ | |||
+ | # Save the result | ||
+ | audio.export(os.path.join("wav_out", os.path.splitext(file)[0] + ".wav"), format="wav") | ||
+ | |||
+ | if __name__ == '__main__': | ||
+ | files = [filename for filename in os.listdir(path) if | ||
+ | os.path.isfile(os.path.join(path, filename))] | ||
+ | for file in files: | ||
+ | convert_audio(file) | ||
+ | </code> | ||
Pentru a pune fișierele pe SD, ele trebuiesc formatate astfel încât să poată fi interpretate de codul arduino. Pentru a facilita acest lucru, am creat un script de Python care primește path-ul către un director, extrage toate fișierele WAV și creează un nou folder în acel director care conține versiunea formatată a fișierelor, pregătită pentru copiere pe SD. | Pentru a pune fișierele pe SD, ele trebuiesc formatate astfel încât să poată fi interpretate de codul arduino. Pentru a facilita acest lucru, am creat un script de Python care primește path-ul către un director, extrage toate fișierele WAV și creează un nou folder în acel director care conține versiunea formatată a fișierelor, pregătită pentru copiere pe SD. | ||
- | === Script Python === | + | === Script Python Formatare === |
<code python> | <code python> | ||
import re | import re | ||
Line 172: | Line 204: | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | {{:pm:prj2023:avaduva:petolea_cosmin_335cb.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== |