kontrollera innehåll i mp3-fil?

Permalänk
Medlem

kontrollera innehåll i mp3-fil?

Jag har hamnat i en situation där jag skulle behöva verifiera att att innehållet i en mp3-fil verkligen är ljud och inte nån annan skit som skickas in. Mp3-filen är tänkt att innehålla genererat ljud, kommer inte ha några id3-taggar eller dyl och kommer komma utifrån systemet. Finns det nåt bra sätt att kontrollera så att det verkligen är ljuddata i filen? Detta behöver göras i .net och helst utan att involvera 3:e parts libs.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Medlem

Tja, vad är "ljud"?

Det enda jag kan tänka mig är att datan ska vara giltig mp3-data (det bör vara relativt enkelt att kolla), och möjligtvis att man kan FFTa/spektrumanalysera "ljudet" för att se så det innehåller rimliga frekvenser (dvs. 20-20000Hz). Mer än så går nog inte att göra.

Permalänk

Jag tror lättast approach skulle vara att spela upp ljudet och spela in det igen i en ny fil. Det skulle gå i realtid, men är nog det säkraste och lättaste sättet att se till att det endast är ljud i filen.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem

Ljudet i filen är tal, vilket isf skulle minska frekvensomfånget avsevärt. Jag glömde nämna att detta skulle behöva göras "on the fly" så då låter en frekvensanalys som något enklare att genomföra.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk

Jo, men kan man verkligen göra en frekvensanalys på en digitalt komprimerad fil? MP3 är ju inte ljudvågor utan ettor och nollor. Hade det varit okomprimerat så hade det varit lättare med en frekvensanalys.

Det är klart, information om frekvenserna måste ju finnas där någonstans, men kan du verkligen tillräckligt mycket om MP3's innre uppbyggnad för att isolera detta?

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem

Nej, det är sant. Då vart det juh givetvis mer komplicerat att göra själv, vilket jag inte riktigt tänkte på.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Rekordmedlem

Du kan ju kolla så att filheadern är "mp3 korrekt" (taggningen (metadata) är ju inte det enda som ska finnas) sedan själva datainnehållet går ju att ha annat i om man verkligen vill för det går ju att maskera data som ljud som iofs lär låta skit men ändå slinker igenom som en mp3 fil du kan spela så om du verkligen ska kolla filen krävs röstigenkänning o det blir avancerat.
http://en.wikipedia.org/wiki/MP3 det finns en tabell över headern i mitten på sidan, det finns nog info på flera ställen också.

Visa signatur

Ryzen 5 2400G, Asus ROG STRIX B350-F Gaming, 500GB Samsung 970EVO NVMe M.2 och en väldig massa masslagring. Seasonic Focus+ Gold 650W, Antec P 180 med Schyte o Sharkoon fläktar via en t-balancer, Tittar på en Acer ET430Kbmiippx 43" 4K
Främre ljudkanalerna återges via Behringer DCX2496, högtalare Truth B3031A, Truth B2092A Har också Oscilloskop, mätmikrofon och en Colorimeter.

Permalänk

Med "on the fly", menar du samtidigt som filen spelas in, eller att det skall gå att göra samtidigt som du spelar upp den?

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem

Jag kommer ta emot filen, cache:a den och skicka den vidare vid behov, så kontrollen görs första gången. Men allt ihop triggas juh av att nån vill ha filen så därför behöver det göras on the fly. Spela upp filen är inte mitt problem, jag vill bara försöka försäkra mig om att det inte nåt skadligt jag skickar vidare.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Rekordmedlem

Om du kontrollerar att filen följer mp3 formatet så kommer den att kräva nått specialskrivet program för att extrahera annat innehåll ur den. Det är i så fall en "krypteringsform" som kallas steganografi och så komplicerat behöver du nog inte skydda dig.

Att kolla att headersen som ska finnas enligt mp3 standarden finns i filen gör att den garanterat tolkas som mp3 och inte kan vara en tex en normal .exe, så om det räcker med att veta att den följer mp3 standarden och inte kolla om det är tal i den, för det blir mycket med komplicerat än att leta efter headermönstret och kolla att det är vettigt innehåll i det, så borde en sådan kontroll räcka, jag kan inte .net programmera det här själv, men att kolla headermönstret borde principiellt fungera för att försäkra sig om att det är en giltig mp3 fil och inte något annat.

Visa signatur

Ryzen 5 2400G, Asus ROG STRIX B350-F Gaming, 500GB Samsung 970EVO NVMe M.2 och en väldig massa masslagring. Seasonic Focus+ Gold 650W, Antec P 180 med Schyte o Sharkoon fläktar via en t-balancer, Tittar på en Acer ET430Kbmiippx 43" 4K
Främre ljudkanalerna återges via Behringer DCX2496, högtalare Truth B3031A, Truth B2092A Har också Oscilloskop, mätmikrofon och en Colorimeter.

Permalänk
Medlem
Skrivet av morphman86:

Jo, men kan man verkligen göra en frekvensanalys på en digitalt komprimerad fil? MP3 är ju inte ljudvågor utan ettor och nollor. Hade det varit okomprimerat så hade det varit lättare med en frekvensanalys.

Det är klart, information om frekvenserna måste ju finnas där någonstans, men kan du verkligen tillräckligt mycket om MP3's innre uppbyggnad för att isolera detta?

Klart det går. Allt digitalt ljud är ettor och nollor oavsett format — ett digitalt lagringsmedium innehåller bara "ettor och nollor", filtyper är efterkonstruktioner.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Kolla headers låter onekligen som det enklaste och räcker antagligen. Tack för svaren.

Visa signatur

"Say unto thine own heart, I am mine own redeemer"
Don't touch me when I'm crazy of that airplane glue

Permalänk
Skrivet av Teknocide:

Klart det går. Allt digitalt ljud är ettor och nollor oavsett format — ett digitalt lagringsmedium innehåller bara "ettor och nollor", filtyper är efterkonstruktioner.

Det jag menade var att det inte bara var ljudinformation i filen

Citat:

Men allt ihop triggas juh av att nån vill ha filen så därför behöver det göras on the fly.

Är det inte smidigare att göra det när du får in filen? Det känns som om du borde kunna göra kontrollen en gång då istället för varje gång någon vill ha filen. Eller räknar du med att folk kommer kunna komma åt dina grundfiler och ändra på dem mellan det att du lagt upp dem och någon annan vill ha dem?

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10