
Ich habe eine für mich wertvolle Audioaufnahme, die vor Jahren gemacht wurde und die ich über eine mms
Art Nachricht auf meinem alten GSM-Telefon erhalten habe.
Laut ffprobe.exe -show_entries format:stream -count_frames -count_packets -i mms-1.amr > input.txt
hat das Audio die folgenden Spezifikationen:
[STREAM]
codec_name=amr_nb
codec_long_name=AMR-NB (Adaptive Multi-Rate NarrowBand)
codec_time_base=1/8000
codec_tag_string=samr
sample_rate=8000
channels=1
channel_layout=mono
bits_per_sample=0
duration_ts=275840
duration=34.480000
bit_rate=6000
nb_read_frames=1724
nb_read_packets=1724
[/STREAM]
[FORMAT]
filename=mms-1.amr
nb_streams=1
format_long_name=3GPP AMR
bit_rate=6401
probe_score=100
[/FORMAT]
Ich habe es also mehrere Male versucht, ffmpeg
aber der einzige praktikable Ansatz, den ich gefunden habe, war eine zweiteilige Konvertierung, bei der raw
zuerst der Ton extrahiert wird:
1)ffmpeg -i mms-1.amr -f s16le -c:a pcm_s16le output.raw
2)ffmpeg -f s16le -ar 8000 -ac 1 -i output.raw mms-1.wav
Interessanterweise beträgt die Originaldateigröße 27 KB, die Wave-Datei ist 539 KB groß!
Zwei Fragen:
Ist dies die einzige Möglichkeit, eine Audiodatei vom Typ .amr in ein beliebiges Format zu konvertieren, das vom
Windows
System problemlos erkannt wird? Wie wäre es mit einer einzigen Codezeile, um sie direkt inwav
das Format zu konvertieren?Gibt es gute Audiofilter in ffmpeg, um eine Stimme in der Aufnahme hervorzuheben? Die Antwort auf eine alte FrageHiererwähnt "Ausgleichendals geeignete Technik zum Herausfiltern von Rauschen und Verbessern der Spracherkennung ...“, aber ich habe bisher keine gute Erklärung dafür gefunden, wie es funktioniert. Gibt es noch andere Filter?