Hoe kan ik in een wav-bestand komen om de samplefrequentie te wijzigen?

Ik heb een wav-bestand opgehaald in MATLAB en ik kan de sample rate zien. Het enige wat ik moet doen is dit nummer veranderen. Al het andere in het bestand blijft ongewijzigd. (Het resulterende geluid zou met een andere snelheid spelen, maar zou een identieke reeks voorbeeldgegevens hebben.)

De reden dat ik dit moet doen is omdat MATLAB in paniek lijkt te raken als ik vertel dat het iets moet openen dat gesampled is op iets anders dan 8k. Ik heb alleen MATLAB nodig om het bestand te bewerken, dus de samplefrequentie doet er echt niet toe, aangezien ik het terug in een wav-bestand zal zetten als ik klaar ben. Dus ik moet ofwel in staat zijn om de waarde in het wav-bestand dat de sample-snelheid opslaat te wijzigen, of om MATLAB te krijgen om de sample-snelheid te veranderen die hij prefereert van 8k naar de sample-snelheid waarmee mijn bestanden werden opgenomen.

1
Zie deze (bijna identieke) vraag: avp.stackexchange .com/vragen/4260/& hellip;
toegevoegd de auteur mola, de bron

3 antwoord

als je alleen de samplefrequentie wilt veranderen, hier is de code, maar het zou het originele wav-bestand vervormen. Als u de bemonsteringsfrequentie verlaagt, zijn de beat en de muziek erg langzaam.

Code:
    [y, fs, nbits]=wavread('stego_lab');
    fs2=11025;
    wavwrite(y,fs2,nbits,'stego2_lab.wav');
    sound(y,fs2,nbits)

je kunt het horen, maar de samples blijven hetzelfde. Hoop dat het helpt.

3
toegevoegd

Probeer deze oplossing

[x,fs] = wavread('infile.wav');

[p,q] = rat(16000/fs) % to convert to 16k sample rate

y = resample(x,p,q); % signal package require wavwrite(x,16000,'outfile.wav');
1
toegevoegd

There is the SOX tool, which should help you in that respect, and it comes on almost any platform - http://sox.sourceforge.net

Er is ook libsndrate, libsamplerate, libsndfile en anderen, die mogelijk ook uitvoerbare bestanden hebben.

0
toegevoegd