K 歌的打分系统是怎么实现的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
AsaDong
V2EX    程序员

K 歌的打分系统是怎么实现的

  •  
  •   AsaDong 2015-05-29 7:18:42 +08:00 8641 次点击
    这是一个创建于 3787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要做一款app 要实现像唱吧app那种打分功能。

    有什么好的实现方案么,请各位帮忙说下。

    36 条回复    2017-06-27 16:25:13 +08:00
    staticor
        1
    staticor  
       2015-05-29 17:21:32 +08:00
    我就随便猜测一下.

    声音的频率分析 计算单位时间内和目标频率的距离 距离越远打分越低. 然后加总求总分/p
    AsaDong
        2
    AsaDong  
    OP
       2015-05-29 17:30:53 +08:00
    @staticor 不知道频率分析从哪里着手
    loading
        3
    loading  
       2015-05-29 17:41:06 +08:00
    不就图个乐子吗?
    我告诉你吧,就是 随机数。
    21grams
        4
    21grams  
       2015-05-29 17:41:22 +08:00
    不要想的太复杂,忽悠一下就行了。
    mcone
        5
    mcone  
       2015-05-29 17:48:27 +08:00
    之前见过随机数的路过

    app有分享功能,估计可能还需要好好做一下(估计也就是一个音调比对吧),我在某KTV里面见到的绝对是随机数的打分,70~100随机……
    billlee
        6
    billlee  
       2015-05-29 17:52:05 +08:00
    @AsaDong 傅里叶变换
    AsaDong
        7
    AsaDong  
    OP
       2015-05-29 18:33:37 +08:00
    @billlee 感觉好厉害的样子 快去研究下
    cst4you
        8
    cst4you  
       2015-05-29 18:37:37 +08:00
    分析音高, 音长, 稳定性. 没有做音乐游戏经验的建议不要来混这趟水了, 各种乐理的东西烦死你.
    rwalle
        9
    rwalle  
       2015-05-29 18:38:05 +08:00
    为什么我想到了唐骏?
    imn1
        10
    imn1  
       2015-05-29 19:05:22 +08:00
    试一下一句不唱
    再试一下只在mic上打拍子
    看看得多少分就知道了
    zts1993
        11
    zts1993  
       2015-05-29 22:27:11 +08:00
    @21grams 说对了~
    zts1993
        12
    zts1993  
       2015-05-29 22:27:31 +08:00
    @rwalle 我也觉得。
    WindSays
        13
    WindSays  
       2015-05-29 22:34:27 +08:00
    @21grams 互联网思维233333
    tobyxdd
        14
    tobyxdd  
       2015-05-29 22:45:39 +08:00
    能有频率判断已经很好了
    zonghua
        15
    zonghua  
       2015-05-29 23:06:39 +08:00 via iPhone
    random.next(101)
    Daddy
        16
    Daddy  
       2015-05-29 23:16:21 +08:00
    吼得最大声给最高分,声音小的给低分,一般情况给个75~95的随机分就是了
    zhaohui318
        17
    zhaohui318  
       2015-05-30 00:41:57 +08:00
    每句都跟着唱得就给高分
    so898
        18
    so898  
       2015-05-30 02:45:44 +08:00
    并不能说太多了
    给楼主一个关键词吧:Pitch
    geeti
        19
    geeti  
       2015-05-30 04:06:38 +08:00
    @AsaDong 离散傅里叶?
    ffffwh
        20
    ffffwh  
       2015-05-30 09:24:34 +08:00
    当然,你还要准备原曲人声部分的音高时长(如MIDI)。再和用户唱的对比。
    应该有现成的轮子,把用户唱的声音变成MIDI形式
    pheyer
        21
    pheyer  
       2015-05-30 09:52:06 +08:00
    简单啊,逆向唱吧app自己看
    book1925
        22
    book1925  
       2015-05-30 09:55:55 +08:00 via Android
    应该是类似实时音高修正软件吧,ZYNAPTIQ好像有一个。只不过打分系统是不修正只是检测比对。。
    当然我也觉得KTV那种实际上是忽悠人的,对大多数客人根本用不上8L说的那些。。不用唱吧不评论。
    F32
        23
    F32  
       2015-05-30 10:02:28 +08:00   1
    关键字:DFT (离散傅里叶变换)、FFT (快速傅里叶变换)。其实一直想抽空学习一下的,但是一直没时间
    vinsony
        24
    vinsony  
       2015-05-30 11:02:59 +08:00
    我一直觉得是随机的
    acros
        25
    acros  
       2015-05-30 11:04:40 +08:00
    不了解算法。但是上面的评论们好像打了某位大佬的脸,啪啪响。
    AsaDong
        26
    AsaDong  
    OP
       2015-05-30 11:17:33 +08:00
    @acros 打了谁的啊
    AsaDong
        27
    AsaDong  
    OP
       2015-05-30 11:17:58 +08:00
    先感谢一下以上各位同学的回复
    acros
        28
    acros  
       2015-05-30 11:32:08 +08:00
    fortunezhang
        29
    fortunezhang  
       2015-05-30 11:35:20 +08:00
    以前 唐骏 做出来过一套,卡拉ok的评分系统。在《我的成功可以复制》里面说,只要大声点就分高一点。
    cool4zbl
        30
    cool4zbl  
       2015-05-30 12:59:01 +08:00
    一入傅里叶变换 深似海
    ETiV
        31
    ETiV  
       2015-05-30 13:08:53 +08:00 via iPhone   2
    想做有技术性一点儿的,就麻烦些。

    前期准备:你得有人做原声谱子,作为评分的标准答案。每首歌做一个谱……

    然后App里:录音进来、傅立叶转频率、频率转音高、音高对比该时刻的标准(或者带升降key的)音高,评分系统就在这里做。
    wizardoz
        32
    wizardoz  
       2015-05-30 16:46:49 +08:00   1
    从音高的角度将还是可以做到很科学的。弹吉他的知道,有电子定音器可以根据mic输入的声音分析出是哪个音高。用来调弦还是比较准的(最准的是通过震动而不是mic输入)。
    K歌评分系统应该可以使用同样的算法。
    tsaoyu
        33
    tsaoyu  
       2015-05-30 19:06:22 +08:00   1
    AN AUTOMATED SINGING EVALUATION METHOD FOR KARAOKE SYSTEMS

    http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5946974

    主要分析是建立在 pitch, volume, rhythm 三个标准上的,具体实现手段在paper里面都有写。
    但是最主要的问题依我看来应该是如何获得大量准确的 vocal sample(原唱)作为参照标准,这个就需要大量的人力或者财力来解决了。
    AmberBlack
        34
    AmberBlack  
       2015-05-31 08:30:12 +08:00
    这个打分具体算法我不清楚,分数是后台服务器上设置随机的。 可以设置,你如果有雅兴 可以去测试下,如果k歌系统设置的高 你那怕不唱一个字 照样有高分。其实就是博人一笑的小把戏。
    AsaDong
        35
    AsaDong  
    OP
       2015-06-01 20:15:00 +08:00
    @fortunezhang 哈哈哈
    GeniusBrother
        36
    GeniusBrother  
       2017-06-27 16:25:13 +08:00
    唱吧里面的语言合成是怎么实现的有种鬼畜的感觉??
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3554 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:34 PVG 12:34 LAX 21:34 JFK 00:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86