How to convert a 5.1ch wave file to 2ch wave file?

9 次查看(过去 30 天)
I have wave files dropped from Front-Left, Front-Right, Rear-Left, Rear-Right and Center Speakers.
I want to synthesis these five waves to 2ch(Left and Right).
I tried sum them together and divide 5, but the result sounds not good.
Do you have any idea on converting 5.1ch to 2ch without losing audio quality?

采纳的回答

Walter Roberson
Walter Roberson 2022-2-22
For this purpose, you should know whether this was a "natural" recording, or if it was an "engineered" recording.
If it is a "natural" recording, then you would expect that, except for physical blockages, that all sounds would be recorded on all channels, and that by analyzing the delay correlations between the channels, you could determine the approximate physical distance to the source of the sound; you could then make a projection of what a two-channel receiver would hear if the receiver were placed at a particular reference position.
But for an "engineered" recording, such as professional music, or a movie with sound effects, then typically different sounds would be sent to different channels to give particular results. For example it turns out to be common to make the vocals from the lead singer mono instead of stereo, so that the vocals get "centered" on the listener -- a quite different result than if you were physically present listening to two signers un-amplified. It is also not uncommon (though not necessarily the best sound) to put the vocals on front channels and the instruments on the rear channels.
Also, on "engineered" recordings, the centre speaker is typically optimized for bass, which is not very directional to humans. It is common for the centre to be low-pass filtered, and intended to be omnidirectional, so any location timing information present should be taken with a proverbial grain of salt.
As a first pass, I would suggest that you decide on a front/back fraction; for the moment I will call that . And then output
left_out = alpha * left_front + (1-alpha) * left_rear;
right_out = alpha * right_front + (1-alpha) * right_rear;
and play with different values of alpha to decide which sounds best to you.
(If you use Audio System Toolbox and audio system objects, you can tie alpha into a slider so that you can dynamically alter the centering as you go, while you experiment.)
It is common for the model of channels that the "front" speakers are near to the listener, and that the "rear" speakers are some distance away. Back of the Hall. So although it seems "obvious" to use alpha = 1/2 to give equal weight to front and back, that is probably not what you want, as human listeners tend to prefer to be further forward than the middle.
  1 个评论
wu you
wu you 2022-2-23
Thanks for your help.
Actually, I am focusing on vitural 3D surrounding effect. I think firstly i use HRTF response to generate "natural" recording, while my physical output devices have only two or one channel, i have to generate a "engineered" recording to match them.
I used different values of alpha and saved the better result. It almost meets my requirements, I will do further related research. Thank you again for your detailed and quickly reply.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by