bond
17th May 2004, 16:29
ok finally i found the time to do a quality comparison of various tools able to do timelength adjustments on audio streams
Test Setup
for my comparison i used the great ABC/HR (http://ff123.net/abchr/abchr.html) audio comparison tool (simply a must when doing "ear-based" quality comparisons :) )
i tested the following tools:
- Audacity 1.2.1
- Adobe Audition 1.0
- BeSweet v1.5b27 - OTA
- BeSweet v1.5b28 - Soundtouch
- Sonic Foundry Sound Forge 6.0
- Prosoniq Timefactory 1.6.1
i tested a 12.721 secs long stereo sample with 44.1khz samplerate
the original sample was a (not good quality) recording in mp3 format i had sync problems with when combining with a 25fps video stream
with 24.996fps the sync problems were gone, therefore i decided to use this situation for doing a 24996/25000 (99.984%) audio conversion, together with this quality comparison to be able to get sync at 25fps at the maximum quality possible
First of all, as most tools offer different options, i did some internal tests to find out which setting would bring the best result:
1) Audacity
i noticed that doing a length change from the source mp3 directly in audacity will lead to less quality than if feeding audacity with a .wav -> therefore i decoded the .mp3 to .wav in besweet first
i compared a tempo change only vs. tempo->pitch change sample => tempo-change only provided better quality (especially regarding the background noise which the pitch change somehow seemed to filter out)
2) Audition
i compared a tempo change only vs. tempo+pitch change sample => tempo+pitch provided better quality (the background noise sounded more than the one in the source)
3) Besweet Soundtouch
i compared a sample using the "rate" option (tempo+pitch change) vs. a tempo only sample => the range sample was better (the difference was not that big tough, when compared to the other pretty clear results)
4) Sound Forge
i compared a sample using the "mode 1" option vs. the "mode 3" option offered => mode 1 was better
5) Timefactory
i compared with vs. without "preserve formants" => without was better (the difference was not that big here too)
this means that finally i tested the following settings:
- BeSweet v1.5b27: OTA - Change Frame Rate from 24496 to 25000
- BeSweet v1.5b28: -soundtouch( -rate 0.99984 )
- Audacity 1.2.1: Change Tempo: 0,99984
- Adobe Audition 1.0: Time/Pitch -> Stretch: Ratio: 99.984, Precision: High, Stretching Mode: Resample (preserves neither)
- Sonic Foundry Sound Forge 6.0: Time Stretch: Mode 1 99,98%
- Prosoniq Timefactory 1.6.1: Duration 99.984%, Algorithm: Polyphonic (best)
Results
first of all some statistical results:
Tool Length (secs) Size (bytes)
Source 12.721 2.244.140
Timefactory 12.719 2.243.780
Audition 12.719 2.243.780
Sound Forge 12.719 2.243.800
BS (OTA) 12.691 2.238.824
Audacity 12.599 2.222.508
BS (Soundtouch) 12.595 2.221.808note that the correct length of the output should be 12.719 secs (12.721x0.99984)
now the quality comparison results from the double blind listening test in abc/hr (max. 5.0/min. 1.0 points possible) and my comments on the different tools:
Prosoniq Timefactory 5.0 (no difference to the source hearable)
Adobe Audition 5.0
Sound Forge 4.3
Besweet (Soundtouch) 2.7
Audacity 1.5
Besweet (OTA) 1.0ABC/HR Version 0.9b, 30 August 2002
Testname: Time Shorten Test ( 99.984% )
1L = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundforge-mode1.wav
2L = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_ota.wav
3R = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_prosoniq-P0 0 T1.00 1.wav
4L = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audacity.wav
5R = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundtouch-rate.wav
6R = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audition-tempo-pitch.wav
---------------------------------------
General Comments:
---------------------------------------
1L File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundforge-mode1.wav
1L Rating: 4.3
1L Comment: 11.6 - 12.7 secs -> very small detail missing
---------------------------------------
2L File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_ota.wav
2L Rating: 1.0
2L Comment: horrible
---------------------------------------
4L File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audacity.wav
4L Rating: 1.5
4L Comment: seems to have a stereo problem - after ~2 secs the right channel becomes stronger
---------------------------------------
5R File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundtouch-rate.wav
5R Rating: 2.7
5R Comment: 0.0 -1.5 secs -> the background noise seems to be at a lower volume
---------------------------------------
ABX Results:
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundforge-mode1.wav
61 out of 92, pval = 0.001
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_ota.wav
9 out of 9, pval = 0.002
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_prosoniq-P0 0 T1.00 1.wav
14 out of 29, pval = 0.644
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audacity.wav
9 out of 9, pval = 0.002
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundtouch-rate.wav
24 out of 31, pval = 0.002
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audition-tempo-pitch.wav
42 out of 85, pval = 0.586Conclusion
Sad but true, the opensource time adjustment tools cant keep up qualitywise with the commercial tools in this test
I only tested a small time length adjustment but it was already enough to sort a whole bunch of tools out qualitywise in this test
As a result of this test i will use prosoniq timefactory or adobe audition for the conversion i tested here, as i couldnt hear a difference to the source with them in this test, for other conversions (and if you really cant do it with a simple and 100% lossless changing of the video framerate) i would recommend you to do your own tests to be absolute on the safe side :)
note: seems i made a mistake with the correct settings for audacity and soundtouch - soundtouch is able to hit the target length exactly!
read more below
Test Setup
for my comparison i used the great ABC/HR (http://ff123.net/abchr/abchr.html) audio comparison tool (simply a must when doing "ear-based" quality comparisons :) )
i tested the following tools:
- Audacity 1.2.1
- Adobe Audition 1.0
- BeSweet v1.5b27 - OTA
- BeSweet v1.5b28 - Soundtouch
- Sonic Foundry Sound Forge 6.0
- Prosoniq Timefactory 1.6.1
i tested a 12.721 secs long stereo sample with 44.1khz samplerate
the original sample was a (not good quality) recording in mp3 format i had sync problems with when combining with a 25fps video stream
with 24.996fps the sync problems were gone, therefore i decided to use this situation for doing a 24996/25000 (99.984%) audio conversion, together with this quality comparison to be able to get sync at 25fps at the maximum quality possible
First of all, as most tools offer different options, i did some internal tests to find out which setting would bring the best result:
1) Audacity
i noticed that doing a length change from the source mp3 directly in audacity will lead to less quality than if feeding audacity with a .wav -> therefore i decoded the .mp3 to .wav in besweet first
i compared a tempo change only vs. tempo->pitch change sample => tempo-change only provided better quality (especially regarding the background noise which the pitch change somehow seemed to filter out)
2) Audition
i compared a tempo change only vs. tempo+pitch change sample => tempo+pitch provided better quality (the background noise sounded more than the one in the source)
3) Besweet Soundtouch
i compared a sample using the "rate" option (tempo+pitch change) vs. a tempo only sample => the range sample was better (the difference was not that big tough, when compared to the other pretty clear results)
4) Sound Forge
i compared a sample using the "mode 1" option vs. the "mode 3" option offered => mode 1 was better
5) Timefactory
i compared with vs. without "preserve formants" => without was better (the difference was not that big here too)
this means that finally i tested the following settings:
- BeSweet v1.5b27: OTA - Change Frame Rate from 24496 to 25000
- BeSweet v1.5b28: -soundtouch( -rate 0.99984 )
- Audacity 1.2.1: Change Tempo: 0,99984
- Adobe Audition 1.0: Time/Pitch -> Stretch: Ratio: 99.984, Precision: High, Stretching Mode: Resample (preserves neither)
- Sonic Foundry Sound Forge 6.0: Time Stretch: Mode 1 99,98%
- Prosoniq Timefactory 1.6.1: Duration 99.984%, Algorithm: Polyphonic (best)
Results
first of all some statistical results:
Tool Length (secs) Size (bytes)
Source 12.721 2.244.140
Timefactory 12.719 2.243.780
Audition 12.719 2.243.780
Sound Forge 12.719 2.243.800
BS (OTA) 12.691 2.238.824
Audacity 12.599 2.222.508
BS (Soundtouch) 12.595 2.221.808note that the correct length of the output should be 12.719 secs (12.721x0.99984)
now the quality comparison results from the double blind listening test in abc/hr (max. 5.0/min. 1.0 points possible) and my comments on the different tools:
Prosoniq Timefactory 5.0 (no difference to the source hearable)
Adobe Audition 5.0
Sound Forge 4.3
Besweet (Soundtouch) 2.7
Audacity 1.5
Besweet (OTA) 1.0ABC/HR Version 0.9b, 30 August 2002
Testname: Time Shorten Test ( 99.984% )
1L = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundforge-mode1.wav
2L = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_ota.wav
3R = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_prosoniq-P0 0 T1.00 1.wav
4L = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audacity.wav
5R = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundtouch-rate.wav
6R = C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audition-tempo-pitch.wav
---------------------------------------
General Comments:
---------------------------------------
1L File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundforge-mode1.wav
1L Rating: 4.3
1L Comment: 11.6 - 12.7 secs -> very small detail missing
---------------------------------------
2L File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_ota.wav
2L Rating: 1.0
2L Comment: horrible
---------------------------------------
4L File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audacity.wav
4L Rating: 1.5
4L Comment: seems to have a stereo problem - after ~2 secs the right channel becomes stronger
---------------------------------------
5R File: C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundtouch-rate.wav
5R Rating: 2.7
5R Comment: 0.0 -1.5 secs -> the background noise seems to be at a lower volume
---------------------------------------
ABX Results:
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundforge-mode1.wav
61 out of 92, pval = 0.001
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_ota.wav
9 out of 9, pval = 0.002
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_prosoniq-P0 0 T1.00 1.wav
14 out of 29, pval = 0.644
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audacity.wav
9 out of 9, pval = 0.002
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_soundtouch-rate.wav
24 out of 31, pval = 0.002
Original vs C:\Eigene Dateien\Eigene Videos\Test\Audio\timestretch\bond_audition-tempo-pitch.wav
42 out of 85, pval = 0.586Conclusion
Sad but true, the opensource time adjustment tools cant keep up qualitywise with the commercial tools in this test
I only tested a small time length adjustment but it was already enough to sort a whole bunch of tools out qualitywise in this test
As a result of this test i will use prosoniq timefactory or adobe audition for the conversion i tested here, as i couldnt hear a difference to the source with them in this test, for other conversions (and if you really cant do it with a simple and 100% lossless changing of the video framerate) i would recommend you to do your own tests to be absolute on the safe side :)
note: seems i made a mistake with the correct settings for audacity and soundtouch - soundtouch is able to hit the target length exactly!
read more below