2012-06-18 19 views
5

Come posso estrarre informazioni come frequenza di campionamento, bit rate ecc. Da un file AMR-NB. Strettamente parlando voglio la frequenza di campionamento o qualsiasi altro dato che possa alterarne l'intonazione o il tempo.Come leggere e modificare i dati del file audio amr?

è stato facile per i file WAV, ma qui sono costretto con il formato AMR-NB (dispositivi J2ME)

Ho cercato molto su google ma non può ottenere nulla su di esso ...

è AMR-NB fissato a 8Khz? o varia con ogni campione?

risposta

2

In base al formato file AMR: http://developer.nokia.com/community/wiki/AMR_format I file AMR hanno un'intestazione da 6 byte, seguita da un set di frame audio, ciascuno con un'intestazione da 1 byte. Ogni frame audio è lungo 20 ms e ha e la frequenza di campionamento è indicata nell'intestazione di ciascun frame. in modo da leggere la frequenza di campionamento per il primo fotogramma, è necessario leggere il settimo byte nel file. Prendi il settimo byte e spostalo a destra di 3 bit e maschera i 4 bit più bassi del nuovo valore. In java questo è "((valore >> 3) & 0x0F)" dove valore è l'intestazione da 1 byte per il frame. Quindi controlla il numero sulla tabella sottostante per determinare il bitrate per quel fotogramma. dato che ogni frame è lungo 20ms, è necessario moltiplicare il bitrate (lo danno come kb/s in modo da moltiplicare quel numero per 1000 per ottenere i bit al secondo) per 20 e dividere per ((8 bit per byte) * 1000ms per secondo) = 8000 per ottenere il numero di byte da saltare per la successiva intestazione del frame. Se si desidera modificare il contenuto del frame, semplicemente ricopiare i frame in sequenza in un nuovo file, ma sostituire il nuovo frame con uno vecchio. Un file temporaneo fa bene. Ho copiato la tabella del bitrate dalla pagina di origine qui sotto per riferimento.

0 - AMR 4,75 - Codifica a 4.75kbit/s

1 - AMR 5.15 - Codifica a 5.15kbit/s

2 - AMR 5.9 - Codifica a 5.9kbit/s

3 - AMR 6.7 - Codifica a 6.7kbit/s

4 - AMR 7.4 - Codifica a 7.4kbit/s

5 - AMR 7,95 - Codifica a 7.95kbit/s

01.235.

6 - AMR 10.2 - Codifica a 10.2kbit/s

7 - AMR 12.2 - Codifica a 12.2kbit/s

Problemi correlati