Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
C Embedded

Lipsa menstruației de cateva...

Ajustare pret contract mixt

Cum setez sa trimit sms de pe dig...
 Cum setez sa trimit sms de pe dig...

Microciment in bucatarie

La mulți ani @nick5roo!

DDNS Digi
 Marantz MM7025 vs Rotel RB1552 mkii

Recomandare bicicleta electrica

Venom - The Last Dance

Demolarea blocurilor prea vechi s...
 Alimentare motor stea-triunghi

Contact pornire aproape blocat de...

Nonce cu Javascript si Nginx pt I...

Sigma 28-45mm F/1.8
 

Aplicatie java sound

- - - - -
  • Please log in to reply
13 replies to this topic

#1
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009
Am o problema serioasa: trebuie sa fac o aplicatie care la un anumit interval sa imi afiseze pe ecran frecventa sunetului receptionat de microfonul telefonului. Poate cineva sa imi dea niste sugestii, nu stiu sigur daca se poate face acest lucru.
  E cat se poate de urgent!
       Multumesc!!!

Edited by sandes87, 23 February 2009 - 13:11.


#2
phlak

phlak

    Member

  • Grup: Members
  • Posts: 379
  • Înscris: 21.04.2006
Ca sa afisezi frecventa, trebuie sa obtii semnalul de la microfon in format digital. Teoretic poti sa faci asta 'citind', din cadrul programului j2me, iesirile de la ADC-ul (Analog-Digital Converter) intern al mobilului. Problema e ca in j2me nu se poate accesa ADC-ul la un nivel atat de jos, dar se poate manipula semnalul respectiv pentru a crea un player ptr streaming (folosesti pachetul javax.microedition.media.*). Vezi un exemplu aici; recordedSoundArray din exemplul de acolo este ce-ti trebuie.

#3
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009
Inca nu am rezolvat problema si bate licenta la usa!! Cine ma poate ajuta?? Nu ma descurc sa il fac, am incercat eu tot ce am stiut, dar nu am reusit sa obtin frecventa sunetului!!

#4
phlak

phlak

    Member

  • Grup: Members
  • Posts: 379
  • Înscris: 21.04.2006
Trebuie clarificate niste treburi:
Pentru ce tip de telefon,ce versiune CLDC vrei sa faci programul? Asta conteaza pentru ca exista mai multe tipuri de formate de inregistrare (PCM-WAV,AAC,MP3,AMR),si nu toate telefoane au toate codecurile; de exemplu la SonyEricsson formatul popular e AMR,care este mai greu de interpretat pentru a obtine frecventa,ai nevoie de un algoritm de decodificare -amr folosind un codec de compresie.
Cel mai simplu de utilizat e formatul PCM (WAV) existent la multe telefoane Nokia, unde in bufferul de inregistrare o sa obtii pe o rata de esantionare selectata  valori intre -128-127 signed sau 0-255 unsigned,ce reprezinta amplitudinea semnalului.
Apoi,cred ca stii ca achizitia nu o poti face in timp real,ci cu un mic delay (ptr secventa inregistrare>calcul/redare),asta ptr ca puterea de calcul a mobilului e totusi mica. Ai putea folosi mai multe threaduri ptr a rezolva partial problema asta.
Si ca sa nu zici ca nu ai primit ajutor suficient,iti atasez si un proiect in Netbeans cu surse cu tot,ce contine partea de inregistrare/calcul amplitudine maxima/redare

Ca sa schimbi formatul de inregistrare modifici linia Manager.createPlayer("capture://audio?encoding=pcm");
Bafta cu licenta!
Attached File  SoundRecord.rar   48.32K   32 downloads

#5
Floryn_cool95

Floryn_cool95

    Junior Member

  • Grup: Members
  • Posts: 131
  • Înscris: 16.01.2009
Multumesc :D

#6
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009
Mersi mult phlak,

Pe un nokia N73 vreau sa mearga aplicatia, am chinuit telefonu ala de cred ca isi doreste moartea. aplicatia merge numai ca nu da rezultate bune.

mai am o rugaminte(am tot cautat pe net si nu am gasit o formula sa calculez diagrama spectrului de frecvente, sau cel putin frecventa tonului de amplitudine maxima), daca nu iti cer prea mult, mai fa un efort si da-mi niste detalii(ca sigur le stii).

Edited by sandes87, 23 May 2009 - 17:05.


#7
phlak

phlak

    Member

  • Grup: Members
  • Posts: 379
  • Înscris: 21.04.2006
Odata ce ai preluat vectorul de amplitudini, poti face orice cu el, nu vad unde e greutatea.  Un exemplu de diagrama de peak-uri il ai chiar in proiectul atasat de mine mai demult. Adica in portinuea asta de cod:
for(int i=0;i<bytes.length-1;i++)
	g.drawLine(i,bytes[i]/4+height/2,i+1,bytes[i+1]/4+height/2);

Calculele pe baza frecventei le poti face tinand cont de rata de esantionare (sau sampling rate). In cod, o stabilesti la crearea playerului, adica aici:
player=Manager.createPlayer("capture://audio?rate=16000");
Vezi linkul asta cu detalii despre parametrii playerului: link
Atentie mare sa nu selectezi o rata de esantionare nesuportata de telefon! Acea rata de esantionare (de ex 8 KHz) inseamna ca la fiecare 1/8000s se va prelua un sample. Daca afisezi valoarea vectorului bytes.length o sa vezi si numarul total de sampleuri.
Ziceai de calculul frecventei tonului de amplitudine maxima. In primul rand trebuie sa calculezi acest maxim, asta presupun ca stii sa faci. Frecventa prin definitie e inversul perioadei, adica f=1/T. Perioada reprezinta timpul care trece intre varfurile dorite, si poate fi determinata prin produsul intre numarul de sampleuri intre varfuri si inversul frecventei de esantionare (sau durata intre sampleuri). Sa presupunem ca maximul tau e 127 si se gaseste la indicii 2001 si 2004 in vectorul de sampleuri. Adica bytes[2001]=127, bytes[2004]=127. T=(2004-2001)*1/8000 (ptr o rata de 8KHz) de unde o frecventa de 2,6 KHz
Bafta cu restul proiectului :D

#8
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009
Asa am gandit si eu formula de calcul a frecventei de amplitudine maxima, dar, tinand cont ca nu avem o diagrama perfect sinusoidala, formula nu da rezultate bune. de exemplu daca avem urmatoarele sample-uri: i1=20, i2=-12, i3=127, i4=58, i5=-2, i6=80, i7=-45, i8=127, atunci mai apare un maxim local intre cele doua valori de 127 vezi putin desenul din atasament. Eu zic, ca m-am bagat  in niste treburi cam complicate, chear daca ma pasioneaza astea, ma cam depasesc.

Attached Files



#9
phlak

phlak

    Member

  • Grup: Members
  • Posts: 379
  • Înscris: 21.04.2006
Perfect sinusoidala n-o sa apara diagrama, pentru ca amplitudinea semnalului e variabila. Maximele e normal sa nu apara la aceeasi perioada, frecventa lor e variabila; pe baza asta ai putea exprima o banda de frecvente a lor. Teoria semnalelor si procesarea sunetelor sunt domenii destul de dificile, dar totusi vezi cate procesoare de sunet sunt si cate posibilitati. Si cand totul se face mobil, e si mai interesant :rolleyes:

#10
sebike

sebike

    Member

  • Grup: Members
  • Posts: 293
  • Înscris: 25.05.2009
exista si asemenea programe?

#11
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009
Pentru cei interesati am lasat proiectul facut de mine cu ajutorul lui phlak, aplicatia functioneaza, dar cum am mentionat mai sus, nu se poate folosi in scopul acordarii instrumentelor, deoarece nu da rezultatul exact. incerc sa caut o alta metoda de calcul a frecventei, eventual  cu FFT(fast fourier transform), am inteles ca o asemenea functie trebuie folosita.
   Multumesc inca o data phlak.
Aveti atasat fisierul acorder.rar

Attached Files



#12
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009

View Postsandes87, on 17th June 2009, 12:47, said:

Pentru cei interesati am lasat proiectul facut de mine cu ajutorul lui phlak, aplicatia functioneaza, dar cum am mentionat mai sus, nu se poate folosi in scopul acordarii instrumentelor, deoarece nu da rezultatul exact. incerc sa caut o alta metoda de calcul a frecventei, eventual  cu FFT(fast fourier transform), am inteles ca o asemenea functie trebuie folosita.
   Multumesc inca o data phlak.
Aveti atasat fisierul acorder.rar


Cu aplicatia asta am luat nota 10 la lucrarea de licenta!! Comisia a ramas placut impresionata!!

#13
phlak

phlak

    Member

  • Grup: Members
  • Posts: 379
  • Înscris: 21.04.2006

View Postsandes87, on 26th July 2009, 17:03, said:

Cu aplicatia asta am luat nota 10 la lucrarea de licenta!! Comisia a ramas placut impresionata!!
Felicitari! In general aplicatiile mobile sunt fie apreciate f bine (impresioneaza) fie deloc (comisia nu intelege mare lucru). Asta pentru ca asta e un domeniu destul de recent si in multe facultati inexistent. Eu am participat cu o aplicatie mobila la un concurs si comisia s-a uitat cam ciudat, nu prea stiau ca un telefon are un astfel de potential :lol:
ps: Poti sa ne spui ce metoda ai aplicat pana la urma pentru calculul frecventei?

#14
sandes87

sandes87

    New Member

  • Grup: Members
  • Posts: 8
  • Înscris: 19.02.2009

View Postphlak, on 30th July 2009, 17:04, said:

ps: Poti sa ne spui ce metoda ai aplicat pana la urma pentru calculul frecventei?

am calculat de cate ori "amplitudinea" atinge valoare maxima in-tr-un interval de 1 secunda. bineinteles ca eu luam valori pe intervale mai mici si cu ajutorul lor calculam in final de cate ori ar fi fost intr-o secunda, aplicatia mergea pe nokia n73, dar pe multe altele care le-am probat nu mergea! :(

faza o fost ca nu au mai stiut ce sa ma intrebe, ca nu le prea aveau cu muzica, si asa i-am pacalit


au incercat sa ma inchida cu intrebari capcana din codul sursa, dar il stapaneam foarte bine si au fost nevoiti sa imi dea nota!!

Dumnezeu sa le dea sanatate!!

Si tie phlak la fel, ca m-ai ajutat!

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate