各大音乐平台API分析

断断续续写了一个月的Project Israfil,是时候分享一些我用的音乐平台API了。

可能会写的比较隐晦,毕竟 -_-

1. QQMusic

QQ音乐的较为简单,搜索完成以后基本可以直接算出所有绝对链接地址

搜索地址:

s.music.qq.com/fcgi-bin/music_search_new_platform?t=0&n={0}&aggr=1&cr=1&loginUin=0&format=json&inCharset=GB2312&outCharset=utf-8&notice=0&platform=jqminiframe.json&needNewCode=0&p=1&catZhida=0&remoteplace=sizer.newclient.next_song&w={1}

返回json格式

其中要用到的是fstring (json: "f"),具体用法:

#define FSongID 0
#define FSongName 1
#define FSingerID 2
#define FSingerName 3
#define FAlbumID 4
#define FAlbumName 5
#define FMusicID 20
#define FSongPicID 22

然后绝对链接地址计算方法:

const string QMStreamURL     = "http://stream.qqmusic.tc.qq.com";
const string QMM4aURL        = QMStreamURL + "/{0}.m4a";      // sid
const string QMLowMp3URL     = QMStreamURL + "/{0}.mp3";      // sid + 30000000
const string QMHighMp3URL    = QMStreamURL + "/{0}.mp3";      // sid
const string QMFlacURL       = QMStreamURL + "/F000{0}.flac"; // mid
const string QMApeURL        = QMStreamURL + "/A000{0}.ape";  // mid

2. 天天动听

天天动听歌曲搜索API是直接返回音频文件地址的,包括无损,所以搜索很好实现,URL: http://search.dongting.com/song/search/?q=asdf&page=0&size=10

3. 网易云音乐

未完,待续。
Read More

AlphaGo核心技术之二,深度学习简单介绍

上一篇传送门:AlphaGo核心技术之一,蒙特卡洛树搜索

科普

深度学习
深度学习指多层的人工神经网络及其学习方法。与普通的人工神经网络不同的是,深度学习模拟人脑进行分析、学习的能力更强。一般来讲,神经网络把一大批矩阵数字作文输入,然后通过非线性激活函数(如Sigmoid())来取权重,再产生一个集合作为输出。人类的生物大脑有类似的工作机理,外部的信号经过初步处理后,交给多层的神经组织形成的神经网络处理,不同的是你的大脑里没有任何中间的矩阵数字。

最早的神经网络算法Back Propagation在上世纪80年代就有了,之所以机器学习到现在才开始流行,是因为人工神经网络的训练需要海量的数据,Google写的卷积神经网络(Convolutional Neural Networks)在没有外界指令的自发条件下,通过1.6万块CPU,看了YouTube上1000万段视频,才有了“猫”这个概念。如今倡导大数据的时代,机器学习算法自然有足够的数据去学习,也就导致了其蓬勃发展。

Read More

AlphaGo核心技术之一,蒙特卡洛树搜索

首先, AlphaGo和李世石之间的对决是不公平的,AlphaGo的逻辑模块只能用于下围棋,相当于李世石用他的人类大脑挑战一个专门训练成只能用于下围棋的大脑。去年10月在英国挑战樊麾的时候AlphaGo的核心数是1200个CPU和170个GPU,而挑战李世石的时候AlphaGo用了1920个CPU。围棋界有个Elo的参数用来评价围棋手,李世石Elo为3532,去年10月的AlphaGo的Elo值为3168,值得注意的是中国棋手柯洁的Elo为3634。

AlphaGo总体来讲用了Google DeepMind的Policy Network 和 Value Network指引Monte Carlo算法,相当于用深度学习的技术来引导一个高明的搜索。(其实还有一个Fast Rollout用来快速走子,感谢@dlfall的提醒,总体来说是四个部分:决策网络、价值网络、快速走子和蒙特卡洛树搜索)

Read More