Hjælp til at udvikle AI

Har du brug for en tekniker, musiker, webdesigner, underviser eller anden ydelse så skriv her.
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Hjælp til at udvikle AI

Indlæg Skrevet: 12. okt 2016, 21:38

Er der mon en eller flere der er interesseret i at være med på et mini projekt som går ud på at udvikle noget AI (mere præcist en deeplearning algoritme) til at genkende lyd? Jeg skal nok stå for kodning - men jeg har brug for hjælp til samples, og gerne mange af dem.

Det kunne enten være sjovt, som nævnt i en anden tråd, at lære den hvordan et kick lyder. Eller måske at genkende en bestemt stemme?
Alt andet lige vil jeg skulle bruge hjælp til at lave samples (mindst 1000 stk.) alle af samme varighed, og hvis det er muligt, uden stilhed i starten..

Idéer og input er velkommen :)
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Christoffer I. N.
Lydmaskinist
Lydmaskinist
Indlæg: 21001
Sted: Hørsholm

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 00:35

Samme varighed. Hvordan skal det forståes?
Skal alle samples eksempelvis være 100.00 millisekunder/et bestemt antal samples ved en bestemt samplerate?
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 06:49

Ja, lige præcis! :-)

Og uden stilhed i starten:
At lyden begynder med det samme
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Christoffer I. N.
Lydmaskinist
Lydmaskinist
Indlæg: 21001
Sted: Hørsholm

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 07:51

Må filen så ende med stilhed?
Der er jo ikke 2 lyde der er ens.

Jeg tror ikke du får folk herinde til at bruge tid på at tilpasse den slags i størrelsesordnen flere hundrede samples.
Brugeravatar
Holger
The Puppet Master
The Puppet Master
Indlæg: 30940
Sted: Fyn

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 09:28

Hvis man nu tager Hit Kit V3 og får Barbabatch til at trunkere alle samples, så tager det ikke så lang tid.

Der er ca. 4.000 lyde i Hit Kit og hvis man sortere loops fra, så er der stadig ca. 3.000 single shot lyde, som kunne trunkeres i et batch. Silence er allerede skåret fra, så det er bare at trimme automatisk og ellers kan man også sætte Barbabatch til yderligere at strippe silence automatisk. Evt. indsætte marginale fadeouts for at undgå kliks i enderne pga. manglende zero crossing.
Brugeravatar
Hoby
Forum Donator
Forum Donator
Indlæg: 314
Sted: Nørrebro

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 11:15

Man kan også "remove silence" som batchprocessering i Adobe Audition, hvor man kan definerer hvilket niveau mm man definerer som stilhed
Brugeravatar
Uncite
Forum Donator
Forum Donator
Indlæg: 4642
Sted: Søvind

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 12:48

Spørgsmålet er om der findes en batch processering som kan gøre alle filerne til samme længde?

Jeg leverer gerne en stak kicks fra mine egne biblioteker, alle "hånd-klippede" til ikke at indholde tomme bits i starten, men har ikke selv tid til at gøre noget ved dem lige pt.

Vil tro jeg har 150-200 styk.
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 17:56

Christoffer I. N. skrev:Må filen så ende med stilhed?
Der er jo ikke 2 lyde der er ens.

Jeg tror ikke du får folk herinde til at bruge tid på at tilpasse den slags i størrelsesordnen flere hundrede samples.

Ja, det må den gerne.

Og nej, det er netop det der er interessant. Algoritmen skal gå ind og finde det mønster, som matcher eks. kicks bedst :)

Og mht. tid og manuelt arbejde: nej, det er nok at sætte lidt høje forventninger.. Men jeg håbede lidt på noget crowdsourcing, eller idéer, og det ligner lidt at Holger kom med en ganske god idé med Barbabatch! :thumbup:

@Holger: Er lydene alle så korte at de kan skæres ned til < 5 sek ? Og er der én bestemt type lyd hvor der er > 500 stk. af den? Er der eks. 500 kicks?

Lige de overordnede kriterier for at der er en chance for det virker nogenlunde:
- at der er >= 1000 samples
- at den klasse man leder efter (kunne være kicks), udgør > 40% af data
- at alle samples har den samme varighed
- at alle samples har samme opløsning og filformat
- at alle samples begynder lige på
- at alle samples ender indenfor tidsvinduet (stilhed i enden er ikke et problem)

Jeg kunne også optage mig selv hvor jeg siger "Det er Mike" 500 gange, og så lave telefonfis med hver enkelt af jer 125 gange og optage når i tager røret? Var det noget?
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Holger
The Puppet Master
The Puppet Master
Indlæg: 30940
Sted: Fyn

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 18:04

Du har en seriøs udfordring her:

De fleste kicks - for ikke at sige fleste lyde på fx Hit Kit - er langt under 5 sekunder. De fleste under 1 sekund.

Kicks kommer grundlæggende i to typer: korte og lange (fx stort set alle sub/808 kicks og mange akustiske ikke-gatede/fadede kicks). Du vil derfor skulle korte de lange kicks så betydeligt ned, at de ikke længere vil være sig selv. Dermed vil det naturlige kick ikke kunne indgå i læringsprocessen og grundlaget for sammenligning vil blive udhulet fuldstændigt, som jeg ser det.
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 18:21

Holger skrev:Du har en seriøs udfordring her:

De fleste kicks - for ikke at sige fleste lyde på fx Hit Kit - er langt under 5 sekunder. De fleste under 1 sekund.

Kicks kommer grundlæggende i to typer: korte og lange (fx stort set alle sub/808 kicks og mange akustiske ikke-gatede/fadede kicks). Du vil derfor skulle korte de lange kicks så betydeligt ned, at de ikke længere vil være sig selv. Dermed vil det naturlige kick ikke kunne indgå i læringsprocessen og grundlaget for sammenligning vil blive udhulet fuldstændigt, som jeg ser det.


Men måske man kan programmere sig ud af det; Hvis nu vi siger at 30% af dem varer 2 sek, hvor de resterende 70% varer 0,5 sek.
I så fald kan de 70% "bare" fyldes med silence i resten af filen, så de har den samme længde..

I forhold til sammenligningsgrundlaget, så var det idéen at køre data igennem forskellige transformationer så jeg ender med et sæt af spektrogrammer for hver x tidsenhed, hvor amplituden er målt for nogle fixed frekvens-intervaller. Hvert sæt af spektrogrammer vektoriseres så, og knyttes til et label= kick/andet.

Og hele herligheden kastes så herefter ind i et convolutional neural network som indlærer nogle features i data (eks. kan der måske være et særligt mønster i ændringen i spektrogrammerne for kicks), som så herefter kan anvendes til at predicte om det er et kick eller ej :)

Min mavefornemmelse siger mig at den største udfordring er standardisering + antallet af samples, da jeg får vanvittigt mange dimensioner ved alt der varer > 2 sek.
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Holger
The Puppet Master
The Puppet Master
Indlæg: 30940
Sted: Fyn

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 18:57

De fleste kicks holder sig dog under 2 sekunder.
Brugeravatar
Holger
The Puppet Master
The Puppet Master
Indlæg: 30940
Sted: Fyn

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 18:59

De fleste kicks holder sig dog under 2 sekunder.

Der er ca. 340 kicks på Hit Kit, så vi er under 40%, men så mangler du ikke så meget for at fylde ud.

Der er rigeligt op til de 1.000 samples.
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 13. okt 2016, 22:21

Holger skrev:De fleste kicks holder sig dog under 2 sekunder.

Der er ca. 340 kicks på Hit Kit, så vi er under 40%, men så mangler du ikke så meget for at fylde ud.

Der er rigeligt op til de 1.000 samples.


Ja, det var en god start! Så er det ikke helt urealistisk :)

Edit: jeg får lige styr på matematikken, og så giver jeg et pip bagefter...
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Christoffer I. N.
Lydmaskinist
Lydmaskinist
Indlæg: 21001
Sted: Hørsholm

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 20. nov 2016, 14:43

Google er godt igang med noget lignende:





EDIT:
Har også postet det i din anden tråd:
viewtopic.php?f=16&t=71394
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 20. nov 2016, 15:39

Christoffer I. N. skrev:Google er godt igang med noget lignende:





EDIT:
Har også postet det i din anden tråd:
viewtopic.php?f=16&t=71394


Det var da spændende. Jeg kendte slet ikke t-SNE algoritmen. Umiddelbart var det heller ikke en metode jeg ellers ville overveje, da jeg er lidt besat af neurale netværk. Men cool. Og endnu fedt at deres sourcecode ligger på github. Så er det bare ærgerligt jeg ikke er python-ekspert.

Men det er sku en rimelig genial måde de har valgt at løse problemet på. Og det geniale ligger ved at de har valgt en metode hvor de komprimerer data ned i en størrelse hvor det kan visualiseres. Det er på hele dimension-reduction tankegangen at de har nailet den.

Mit mål var så at klassificere. Men klassifikation kan også blive bøvlet hvis data har for mange variable kontra observationer. Det fik mig derfor til at overveje om man skulle prøve t-SNE'en til at gøre data 2 eller 3-dimensionel, og derefter køre et neuralt netværk ovenpå til at klassificere lydene.

Fedt fund du har gjort dig her Christoffer :)
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Christoffer I. N.
Lydmaskinist
Lydmaskinist
Indlæg: 21001
Sted: Hørsholm

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 20. nov 2016, 15:56

Mike-air skrev:Fedt fund du har gjort dig her Christoffer :)


:thumbup: jeg så det og tænkte "det var da det Mike ville"
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 28. dec 2016, 16:10

https://github.com/primaryobjects/voice-gender/blob/master/sound.R#L146

Kæft hvor er det fedt at man kan hente så meget hjælp på nettet! Her er lige et eksempel på hvordan man trækker noget signal ud fra nogle optagelser af hhv. mænd og kvinder, for dernæst at kunne træne en algoritme til at kende forskel.

Og det ligner at det er:
1) Furier transform, på hvert sample
2) deskriptive "aggregate" measures for at fange karakteristikken

Kode: Vælg alt

duration: length of signal
meanfreq: mean frequency (in kHz)
sd: standard deviation of frequency
median: median frequency (in kHz)
Q25: first quantile (in kHz)
Q75: third quantile (in kHz)
IQR: interquantile range (in kHz)
skew: skewness (see note in specprop description)
kurt: kurtosis (see note in specprop description)
sp.ent: spectral entropy
sfm: spectral flatness
mode: mode frequency
centroid: frequency centroid (see specprop)
peakf: peak frequency (frequency with highest energy)
meanfun: average of fundamental frequency measured across acoustic signal
minfun: minimum fundamental frequency measured across acoustic signal
maxfun: maximum fundamental frequency measured across acoustic signal
meandom: average of dominant frequency measured across acoustic signal
mindom: minimum of dominant frequency measured across acoustic signal
maxdom: maximum of dominant frequency measured across acoustic signal
dfrange: range of dominant frequency measured across acoustic signal
modindx: modulation index. Calculated as the accumulated absolute difference between adjacent measurements of fundamental frequencies divided by the frequency range
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace
Brugeravatar
Mike-air
Forum Superstar
Forum Superstar
Indlæg: 5966
Sted: Aarhus C

Re: Hjælp til at udvikle AI

Indlæg Skrevet: 30. dec 2016, 13:35

Jeg tror godt jeg ka tillade mig at sige at dette projekt stadig er både interessant, realistisk og relevant efter at have fundet Kory Becker's metode til at få et aggregeret signal ud af wav-filer.

Det ligner lidt at hendes metode er ligeglad med længden på samples, hvilket gør det meget nemmere at finde og anvende brugbar sample data. Eneste tradeoff jeg lige kan forestille mig, er at for meget silence kan skævvride et gennemsnit. Men så kunne man eks. også fjerne alt silence på selve gennemsnits-beregningerne.

Umiddelbart tænker jeg at filnavnene på samples kommer til at være labels - altså, hvis filnavnet indeholder ordet "kick" så bliver selve label som algoritmen skal lære at klassificere.

Hvis Morten har ~200 kicks, og Hitkit indeholder 340 kicks, så er der god mulighed for at lave et balanceret sample. Og så kunne jeg evt. også kigge i tråden med gratis plugins osv. da der nok ligger et par sample packs der inde.

Nå, ville lige dele nogle tanker med dem der er interesserede. Jeg påtænker også at det hele skal være open source.
"The weight of evidence for an extraordinary claim must be proportioned to its strangeness." - Simon Laplace

Tilbage til "Ydelser søges"

Hvem er online

Brugere der læser dette forum: Ingen og 1 gæst