none
C#语言怎样将伴奏与人声分开 RRS feed

  • 问题

  • 在做ktv系统时,想用C#语言或是其他什么技术实现伴奏与原唱任意切换,前辈们帮帮忙,万分感谢!
    2011年12月14日 9:04

答案

  • 你好,

    这个问题相当专业,需要一定音频知识。而且个人觉得和C#或某种编程语言关系并不大。关键是要了解你所使用的音频文件的文件格式以及如何分割音轨等。C#或其它语言所做的其实也就是操作文件类似的工作。有关C#操作文件的操作,可以参看System.IO命名空间。

    谢谢!


    Michael Sun [MSFT]
    MSDN Community Support | Feedback to us
    2011年12月15日 9:14
  • 这本质上是一个算法的问题,但如果你的KTV Source是多音轨的,那就是做音轨切换了。建议C++...
    2011年12月15日 10:12
  • 如果您的音频是立体声的,那么一般正版的 MTV DVD 里面导出来的音轨都是左声道是伴奏,右声道是伴奏 + 人声(或者做右声道相反)的。如果是这样的话,只需要用代码播放左/右声道中的音轨就可以了,不过我相信如果您直接拿一个零售版本的 MP3 来做人声擦除的话,可以,不过作出来的效果非常不好,绝对不是原伴奏的效果。

    建议:一般 KTV 软件的做法是三个文件,一个只有视频,一个是带人声的原版,一个是伴奏。需要伴奏时,播放伴奏;需要原唱时,同时切换到带人声的音乐文件进行播放。


    Mark Zhou
    2011年12月16日 9:37
  • 这个问题挺专业的,可能需要一定的音频方面的知识。不过听音乐的时候多半左声道是伴奏,右声道是原唱。

    我觉得是不是可以简化一下,把音频和原唱分开成两个独立的文件,这样需要原唱得时候把原唱播放就好啦。

    2011年12月17日 1:17

全部回复

  • 你好,

    这个问题相当专业,需要一定音频知识。而且个人觉得和C#或某种编程语言关系并不大。关键是要了解你所使用的音频文件的文件格式以及如何分割音轨等。C#或其它语言所做的其实也就是操作文件类似的工作。有关C#操作文件的操作,可以参看System.IO命名空间。

    谢谢!


    Michael Sun [MSFT]
    MSDN Community Support | Feedback to us
    2011年12月15日 9:14
  • 这本质上是一个算法的问题,但如果你的KTV Source是多音轨的,那就是做音轨切换了。建议C++...
    2011年12月15日 10:12
  • 如果您的音频是立体声的,那么一般正版的 MTV DVD 里面导出来的音轨都是左声道是伴奏,右声道是伴奏 + 人声(或者做右声道相反)的。如果是这样的话,只需要用代码播放左/右声道中的音轨就可以了,不过我相信如果您直接拿一个零售版本的 MP3 来做人声擦除的话,可以,不过作出来的效果非常不好,绝对不是原伴奏的效果。

    建议:一般 KTV 软件的做法是三个文件,一个只有视频,一个是带人声的原版,一个是伴奏。需要伴奏时,播放伴奏;需要原唱时,同时切换到带人声的音乐文件进行播放。


    Mark Zhou
    2011年12月16日 9:37
  • 这个问题挺专业的,可能需要一定的音频方面的知识。不过听音乐的时候多半左声道是伴奏,右声道是原唱。

    我觉得是不是可以简化一下,把音频和原唱分开成两个独立的文件,这样需要原唱得时候把原唱播放就好啦。

    2011年12月17日 1:17
  • thank you!
    2011年12月23日 4:02
  • thank you!
    2011年12月23日 4:03
  • thank you!

     

    2011年12月23日 4:03
  • thank you!

     

    2011年12月23日 4:04