[MoodOfTheSong] 8. AWS

W jednym z ostatnich postów opisałem w jaki sposób znacznie przyspieszyłem działanie skryptu obliczającego cechy nagrań dźwiękowych.
Wyniki nie były jednak na tyle zadowalające, aby umożliwić wygodną pracę nad systemem na moim komputerze. Zamiast jednak wydawać ogromne pieniądze na sprzęt, który przetworzy dane trochę szybciej, postanowiłem wydać niewiele pieniędzy na infrastrukturę, która przetworzy dane o wiele szybciej – chmurę obliczeniową Amazon Web Services.

Czytaj dalej

[MoodOfTheSong] 6. MongoDB

W poprzednim wpisie pokazałem że mój system potrafi już przetworzyć zbiór danych poprzez zastosowanie z góry zadanej transformacji, oraz zwizualizować rozkład statystyczny tych cech dla różnych nastrojów.

Wspomniałem jednak pod koniec postu, że czegoś jeszcze brakuje. Brakuje mianowicie możliwości zapisania wyników pośrednich. Taka możliwość byłaby bardzo wygodna podczas eksperymentowania. Chciałbym na przykład móc raz obliczyć dane a następnie pobawić się różnymi sposobami ich wizualizowania.

Czytaj dalej

[MoodOfTheSong] 5. Pierwsze cechy

Dobra. Było trochę o teorii, trochę o narzędziach, trochę o danych, ale kiedyś trzeba się wziąć na serio do roboty. Zaczynam więc eksperymentowanie z parametryzacją. Dzisiaj opiszę jak przygotowałem system na wczytanie danych, przetworzenie ich ustaloną metodą oraz zaprezentowanie wyników w jakiejś sensownej formie.

Czytaj dalej

[MoodOfTheSong] 4. Serwer ciągłej integracji

Dzisiaj napiszę o kilku technikach, które są bardzo pomocne przy dużych projektach, w których pracuje wiele osób. Ich stosowanie w moim, małym, jednoosobowym projekcie może się wydawać wbijaniem gwoździa młotem pneumatycznym; wolę jednak je poznać, wdrożyć i dopracować trochę za wcześnie niż trochę za późno.

Mowa tutaj o narzędziach, które pozwolą mi mieć pewność, że kod w repozytorium jest zawsze pozbawiony błędów, poprawny stylistycznie, a wszystkie testy przechodzą.

Czytaj dalej

[MoodOfTheSong] 3. Trochu teorii

Gdyby spojrzeć z oddali na większość systemów klasyfikacji, zobaczylibyśmy następujący schemat:

  1. konwertujemy obserwację na formę przyjazną klasyfikatorowi
  2. przepuszczamy przez klasyfikator i otrzymujemy odpowiedź – czym jest nasza obserwacja

Przykład? Na lotniskach nasze bagaże są prześwietlane. Aktualnie wygląda to tak, że przed monitorem pokazującym obraz rentgenowski siedzi ekspert i sprawdza czy w naszej walizce nie ma niczego ciekawego. Wyobraźmy sobie jak wyglądałby system, który go wspomaga.

Czytaj dalej

[MoodOfTheSong] 2. Jak się dobrać do danych

W poprzednim wpisie pokazałem skąd biorę dane treningowe i jak je konwertuje do formatu WAV. Pasuje więc wreszcie z tych danych skorzystać! W projekcie będę używał Pythona, część systemu odpowiedzialna za trenowanie klasyfikatora będzie więc po prostu skryptem napisanym w tym języku.

Skrypt ten:

  • wczyta dane z plików
  • rozdzieli je na zbiory: treningowy i testowy
  • dokona dalszej ich obróbki
  • wytrenuje klasyfikator (i zapisze go do pliku lub bazy)

Czytaj dalej

[MoodOfTheSong] 0. Zaczynamy!

Biorę udział w tegorocznej edycji konkursu Daj się poznać. Konkurs polega na rozwijaniu przez 3 miesiące projektu o otwartych źródłach oraz regularnym opisywaniu tego procesu na blogu.

Projekt, nad którym będę pracował to system do rozpoznawania nastroju utworów muzycznych. Będzie to coś w stylu maszynki, która na wejściu przyjmie plik MP3, a zwróci informację o tym czy nagranie jest smutne, wesołe, energiczne itp.

Czytaj dalej