Zlecę program do edycji WAV i konwersji WAV, M4A, MP3 w Kotlinie

1

Witam.

Proszę o podanie przewidywanych dat, czasu i widełek cenowych za poszczególne etapy na priv. Pracę od marca ale szczegóły można ustalić wcześniej.
Na każdym etapie, kroku lepiej 2 razy zapytać niż potem przerabiać. Jeśli są jakieś sugestie to chętnie wysłucham.

  1. wstęp.
    Poszukuję osoby do napisania:
  • języku Kotlin (elementy javy) programu edycji do plików M4A, MP3, WAV ( WAV byłby formatem edycji ).
  • Nie na zaliczenie, program do użytku, na razie dla Windows.
  • Minimum zbędnego kodu z innych projektów,
  • solidny opis w kodzie żebym widział z grubsza co się dzieje i autor za rok się w tym odnalazł :)
  • wcześniej ustalimy co i jak żeby nie było przeróbek dlatego wszystkie pomysły na funkcje wrzucam teraz.
  • kilka kopii programu może działać jednocześnie.

Po kilku przemyśleniach na pierwszy rzut najważniejsze jest cięcie i sklejanie pliku nagranego w dyktafonie. Z uwagi na ograniczone możliwości czasowe kolejne etapy mogą być np co 1-2 miesiąc celem zaznajomienia się z kodem.

Genezą tego programu jest nagrywanie swojego głosu tekstu na dyktafonie smartfona. Jak coś będzie do poprawy to się wytnie i wklei. Z mniejszych kilku min. plików skleję w większy.. np 1-5 godz itd..
Nagrałem zdanie i na pliku nagrał się odgłos przejeżdzającego samochodu.. o tym poniżej ale kiedyś będę chciał to wyciszyć.

Wycena najlepiej skupić się dla Windows ( może kiedyś dla Androida ale czy android da radę np edytować plik o długości od 15min do 1,2, kilku godzin. To już sprawa nie na dziś ).

  1. etap.
    Panel o prostym technicznym wyglądzie, dokładnie ustalimy co i jak żeby nie było przeróbek. Powtarzalne funkcje/ polecenia sam sobie dorobię, potrzebuję funkcji operacji na plikach.
    Ponieważ mój dyktafon smartfona nagrywa w MP3, to ja go przerzucam na kompa.
    I teraz oczywiście w wątkach z pokazaniem procentów postępu, ustalenie parametrów częstotliwości itp.:
  • konwersja M4A, MP3 do WAV,
  • cięcie WAV na kawałki,
  • sklejanie kilku WAV,
  • konwersja WAV do M4A, MP3, dobrze by było żeby M4A po konwersji był bezstratny, bo w tym formacie będą pliki w podręcznej „bibliotece” w folderze chyba że są inne pomysły.
  • sama funkcja konwencji w obie strony będzie osobno, trzeba dobrze udokumentować skąd pobrać ewentualnie kodeki.. żeby już był temat kodeków zamknięty.
    WAV będzie podstawowym formatem obróbki po to żeby nie było tak, że po kilku obróbkach dźwięk będzie brzmiał jak harczenie robota. :)

Do celów tworzenia programu ustalimy w kodzie na sztywno jaki plik w których miejscach ma być rozbity i pod jakimi nazwami plików zapisany. Np. „Podziel próbka.wav” 3 min „Połącz próbka 1 – 3.wav” po 1 min i „Cisza próbka.wav” 0:03.
Tak samo sklejanie kilku plików w jeden.
Na iFrame będą przyciski „Podziel” i „Połącz”. Dodatkowo na początku działania tych przycisków będzie pobierany plik „Podziel.txt” i „Połącz.txt”. I tylko tyle.
A potem wywołane wcześniej na sztywno funkcje.
I to na pierwszy rzut.

  1. etap.
    Odtwarzanie pliku WAV, M4A, MP3, przez głośniki z pokazaniem tylko czasu i z tego będę sobie zapisywał czasy skąd dokąd mam ciąć.
  • Opcja Pauza/ Wznów, Cofnij do miejsca.
    Więc w pierwszej wersji nie będzie fali i zaznaczania fragmentu myszką.
  • Opcja prędkość odtwarzania np 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2,3,4,5 razy oryginalnej prędkości.
  • możliwość odtwarzania w pętli.
    To tyle żeby najprościej.
  1. a. Można by wycenić tu funkcję nagrywania do formatu WAV o ustalonych parametrach.

  2. etap.
    odtwarzanie pliku WAV
    a) z wizualizacją:

  • fala całej piosenki (lub fragmentu piosenki w przedziale czasowym )
  • takie słupki częstotliwości w danej chwili (wskazanym czasie)

Za pamięci napiszę, że te fale i słupki to trzeba będzie zrobić tak żeby w zadanym czasie funkcja pobrała przetworzone dane do listy częstotliwości czy coś a potem możliwość wyświetlenia.
Dlaczego.. jak plik będzie miał godzinę to mi nie potrzebna fala z co 0,001s dokładnością.. może taką się pobierze ale wyświetli co 1 lub 5s. Jako średnia z tych 5 sekund – do ustalenia.

„Słupki” „pobrane" w danym czasie np. 00010 z otwartego pliku WAV to po to żeby było widać, które częstotliwości grają.

Napiszę od razu, że zależy mi na przygotowaniu funkcji odczytujących i podmieniających dane w otwartym pliku żebym mógł sam np.:

  • wyciszyć lub pogłośnić dźwięk całego pliku lub fragmentu, na wszystkich częstotliwościach lub wybranej,
  • wyciąć wszystko co można a zostawić np tylko ludzki głos,
  • potem w takiej ścieżce dźwiękowej ( czy jak to nazwać) wyszukać ciszy,
  • opcja podniesienia i obniżenia barwy głosu,
    Trzeba wziąć pod uwagę że pliki mogą mieć,
    np.
  • kanał audio: mono i stereo,
  • przepływowość: 64, 96, 128, 192, 256, 320 Kbps,
  • częstotliwości 8000, 11025, 16000, 22050, 32000, 41100, 48000, 96000, 128000 Hz,
    Na każdym etapie konsultacje żeby nie było poprawek.
  1. etap.
    Podesłanie jakiegoś opisu (może być gotowiec) chyba że wcześniej sam coś znajdę...
    jak i co skopiować i uruchomić program na windows, może się uda znaleźć coś darmowego co przerobi to na exe żeby nie uruchamiać to za każdym razem z linii poleceń czy coś.

Pozdrawiam Rafał

2

I w jaki sposób doszedłeś, że Java/Kotlin to sensowne technologie do tego projektu?

0
Dregorio napisał(a):

I w jaki sposób doszedłeś, że Java/Kotlin to sensowne technologie do tego projektu?

Właśnie. Do zabawy w audio to fajne libki w C++ i Pythonie widziałem.

0
Dregorio napisał(a):

I w jaki sposób doszedłeś, że Java/Kotlin to sensowne technologie do tego projektu?

Witaj. Bo to kiedyś też chciałby na Androida. Na razie tylko na Windows, zobaczę jak to będzie ewoluowało. A druga sprawa, że od niedawna weekendami uczę się Kotlina więc chciałbym się skupić na " jednym" języku.

0

Audacity?

0
RequiredNickname napisał(a):

Audacity?

Dzięki za podpowiedź ale może wytłumaczę w ten sposób. Chciałbym zautomatyzować niektóre procesy, zrobić bazę dźwięków z których będę później swobodnie korzystał.

I to też trochę tak, że np inaczej się kompresuje kilka plików JPG z 6MB do 0,5MB a trudniej gdy z czasem będzie tych plików setki - to po drugie.

Zainstalowałem sobie na próbę jeden z takich programów do ręcznej obróbki ale jednak potrzebuję z kodem.

0
Integers napisał(a):
RequiredNickname napisał(a):

Audacity?

Dzięki za podpowiedź ale może wytłumaczę w ten sposób. Chciałbym zautomatyzować niektóre procesy, zrobić bazę dźwięków z których będę później swobodnie korzystał.

I to też trochę tak, że np inaczej się kompresuje kilka plików JPG z 6MB do 0,5MB a trudniej gdy z czasem będzie tych plików setki - to po drugie.

Zainstalowałem sobie na próbę jeden z takich programów do ręcznej obróbki ale jednak potrzebuję z kodem.

To polecam raczej skierować się w stronę generalnej automatyzacji którą można sparować z istniejącymi aplikacjami (szczególnie z tymi obsługiwanymi z CLI) aniżeli wymyślać koło na nowo. Zakres masz duży i śmiem twierdzić, że przerasta to Twój hobbistyczny budżet.

0

Zainteresuj się ffmpeg + Audacity który ktoś już zasugerował.

EDIT: lepiej już napisz w podpunktach oczekiwania na małe programy które wykonują pojedynczą rzecz.
Wydaje mi się, że to będzie sensowniejsze.

__

część tych rzeczy jets dosyć łatwo zrobić na "setkach" plików z ffmpeg w konsoli. Na windowsie oczywiście to będzie piekło.

1

Wystarczy opracować workflow na linuksie, ubrać to w jakiś skrypt bashowy i odpalić na Windowsie za pomocą WSL.
Pisanie tego wszystkiego na nowo kompletnie nie ma sensu.

0

Ja wiem, że macie rację tylko że patrzycie z punktu widzenia programisty, który np. ma możliwość postawić sobie postawić Linuksa i czas szukać i testować. Owszem.. powoli będę drążył na Windows & Android bo mi więcej nie potrzeba na tę chwilę.

Tylko, że program by się przydał już :) a jak ktoś we wcześniejszym wątku zauważył dużo przede mną "Hello Wordów". Gotowiec nie wyklucza nauki.

Dlatego po prostu chciałem się dowiedzieć za ile.

0

Zagadnienie sprowadza się do:

  1. Wczytania pliku mp3 lub Wav do pamięci zwykła prosta tablica z float lub DWORD, 1 do n wymiarowa w zależności od ilości kanałów) i tu zalecam skorzystać z gotowych bibliotek.
  2. Manipulowanie zawartością tej tablicy
  3. Zapisywanie wyniku / wyników do pliku w formacie Wav lub innym korzystając np. z gotowych bibliotek.

Jak chcesz wyciągnąć do do wyższego poziomu abstrakcji to robisz kolejkę dwukierunkową z n tablicami, z których każda odpowiada za fragment "utworu".
Wyrysowanie obwiedni, którą nazywasz "falą" jest banalne a "słupki", o których piszesz nazywają się "Histogram" i uzyskuje się go wykonując np. analizę FFT, która też jest w sumie prostą funkcją.

W sumie to można to w kilka dni w przeglądarce zrobić. Nie wiem co tu kombinować...

Jak chcesz napisz na priv ale widząc treść Twojego zapytania zaznaczam, że za wstępne analizy i dyskusje też będę chciał się rozliczyć. Jak u prawnika najpierw płacisz za ustaloną ilość godzin z góry a ja potem grzecznie słucham i udzielam profesjonalnych odpowiedzi.

Dlaczego tak:

Integers napisał(a):

Dlatego po prostu chciałem się dowiedzieć za ile

Myślę, że nie dostaniesz odpowiedzi. Twój problem można rozwiązać na tak wiele sposobów, że rozpiętość cenowa właściwie nie ma górnej granicy.

  • Minimum zbędnego kodu z innych projektów,

O ile Wave można bez problemu obsłużyć na piechotę (choć i tu nie jest tak banalnie jak się wydaje) to implementacja własnej dekompresji w mp3 to raczej głupota.

  • solidny opis w kodzie żebym widział z grubsza co się dzieje i autor za rok się w tym odnalazł :)

Z grubsza sam napisałeś a w szczegółach musisz i tak mieć wiedzę.

Po kilku przemyśleniach na pierwszy rzut najważniejsze jest cięcie i sklejanie pliku nagranego w dyktafonie. Z uwagi na ograniczone możliwości czasowe kolejne etapy mogą być np co 1-2 miesiąc celem zaznajomienia się z kodem.

Co za różnica czy w dyktafonie czy w profesjonalnym studio?

Genezą tego programu jest nagrywanie swojego głosu tekstu na dyktafonie smartfona. Jak coś będzie do poprawy to się wytnie i wklei. Z mniejszych kilku min. plików skleję w większy.. np 1-5 godz itd..

Wydaje mi się, że takich programów są tysiące, Napisz może coś więcej bo bez wskazania celu Twój pomysł brzmi jak "niedzielne przemyślenia na kacu po mocno zakrapianej sobotniej imprezie".

Nagrałem zdanie i na pliku nagrał się odgłos przejeżdzającego samochodu.. o tym poniżej ale kiedyś będę chciał to wyciszyć.

Już Ci napisali: Audacity.

Wycena najlepiej skupić się dla Windows ( może kiedyś dla Androida ale czy android da radę np edytować plik o długości od 15min do 1,2, kilku godzin. To już sprawa nie na dziś ).

Dziś to nie jest problem dla żadnego urządzenia.

  1. etap.
    Panel o prostym technicznym wyglądzie, dokładnie ustalimy co i jak żeby nie było przeróbek. Powtarzalne funkcje/ polecenia sam sobie dorobię, potrzebuję funkcji operacji na plikach.
    Ponieważ mój dyktafon smartfona nagrywa w MP3, to ja go przerzucam na kompa.

Pisanie programu pod "Twój dyktafon" to jakaś pomyłka. W ogóle nie podchodzisz do zagadnienia ogólnie.

I teraz oczywiście w wątkach z pokazaniem procentów postępu, ustalenie parametrów częstotliwości itp.:

  • konwersja M4A, MP3 do WAV,
  • cięcie WAV na kawałki,
  • sklejanie kilku WAV,
  • konwersja WAV do M4A, MP3, dobrze by było żeby M4A po konwersji był bezstratny, bo w tym formacie będą pliki w podręcznej „bibliotece” w folderze chyba że są inne pomysły.
  • sama funkcja konwencji w obie strony będzie osobno, trzeba dobrze udokumentować skąd pobrać ewentualnie kodeki.. żeby już był temat kodeków zamknięty.
    WAV będzie podstawowym formatem obróbki po to żeby nie było tak, że po kilku obróbkach dźwięk będzie brzmiał jak harczenie robota. :)

Wczytujesz Wav do tablicy i tniesz jak chcesz to jest banalne...

Do celów tworzenia programu ustalimy w kodzie na sztywno jaki plik w których miejscach ma być rozbity i pod jakimi nazwami plików zapisany. Np. „Podziel próbka.wav” 3 min „Połącz próbka 1 – 3.wav” po 1 min i „Cisza próbka.wav” 0:03.
Tak samo sklejanie kilku plików w jeden.
Na iFrame będą przyciski „Podziel” i „Połącz”. Dodatkowo na początku działania tych przycisków będzie pobierany plik „Podziel.txt” i „Połącz.txt”. I tylko tyle.
A potem wywołane wcześniej na sztywno funkcje.
I to na pierwszy rzut.

To jakieś straszne kombinacje. Jeszcze to iFrame!

  1. etap.
    Odtwarzanie pliku WAV, M4A, MP3, przez głośniki z pokazaniem tylko czasu i z tego będę sobie zapisywał czasy skąd dokąd mam ciąć.

No trudno by było zrobić żeby odtwarzało np. przez klawiaturę bo na dyskach twardych, skanerach, drukarkach już muzykę odtwarzano.
Głośniki natomiast wydają się być dość oczywistym i rozsądnym wyborem zatem ich ujęcie w "specyfikacji" jedynie pokazuje jak strasznie dużo musisz jeszcze ogarnąć.

  • Opcja Pauza/ Wznów, Cofnij do miejsca.
    Więc w pierwszej wersji nie będzie fali i zaznaczania fragmentu myszką.
  • Opcja prędkość odtwarzania np 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2,3,4,5 razy oryginalnej prędkości.
  • możliwość odtwarzania w pętli.
    To tyle żeby najprościej.
  1. a. Można by wycenić tu funkcję nagrywania do formatu WAV o ustalonych parametrach.

  2. etap.
    odtwarzanie pliku WAV
    a) z wizualizacją:

  • fala całej piosenki (lub fragmentu piosenki w przedziale czasowym )
  • takie słupki częstotliwości w danej chwili (wskazanym czasie)

Za pamięci napiszę, że te fale i słupki to trzeba będzie zrobić tak żeby w zadanym czasie funkcja pobrała przetworzone dane do listy częstotliwości czy coś a potem możliwość wyświetlenia.
Dlaczego.. jak plik będzie miał godzinę to mi nie potrzebna fala z co 0,001s dokładnością.. może taką się pobierze ale wyświetli co 1 lub 5s. Jako średnia z tych 5 sekund – do ustalenia.

„Słupki” „pobrane" w danym czasie np. 00010 z otwartego pliku WAV to po to żeby było widać, które częstotliwości grają.

Napiszę od razu, że zależy mi na przygotowaniu funkcji odczytujących i podmieniających dane w otwartym pliku żebym mógł sam np.:

  • wyciszyć lub pogłośnić dźwięk całego pliku lub fragmentu, na wszystkich częstotliwościach lub wybranej,
  • wyciąć wszystko co można a zostawić np tylko ludzki głos,
  • potem w takiej ścieżce dźwiękowej ( czy jak to nazwać) wyszukać ciszy,
  • opcja podniesienia i obniżenia barwy głosu,
    Trzeba wziąć pod uwagę że pliki mogą mieć,
    np.
  • kanał audio: mono i stereo,
  • przepływowość: 64, 96, 128, 192, 256, 320 Kbps,

??? Co to ma do rzeczy na etapie "manipulacji danymi"?

  • częstotliwości 8000, 11025, 16000, 22050, 32000, 41100, 48000, 96000, 128000 Hz,
    Na każdym etapie konsultacje żeby nie było poprawek.

128 000? Czestotliwości próbkowania można ustawiać dowolne ale co t oza dziwne wartości?

0
  1. Zgrubsza ustalenie co ma być w danym etapie i za ile.

  2. Nie tyle na piechotę co przeróbka z jakiegoś projektu gdzie 80% klas jest zbędnych.
    Więc jak bardzo na piechotę to do ustalenia.. WAV jako niestratny mile widziany na piechotę.. do ustalenia jak bardzo na piechotę.

Konwersje nie mam nic przeciwko gotowym komponentom.. byle by dobrze działo i był dostęp do parametrów.

  1. Właśnie to do ustalenia.

  2. ""Co za różnica czy w dyktafonie czy w profesjonalnym studio?""
    Chciałem być precyzyjny że chodzi o nagrywanie z androidem.
    A jakbym czegoś nie napisał a było potrzebne to by było że co? :)

Wiesz.. na maila już takie rzeczy i ceny mi pisali że zrobiłem opis jak dla dzieci.
Nie jestem tu po to żeby się licytować na wiedzę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1