seek-tune
“
SeekTune 是对 Shazam 歌曲识别算法的一种实现,它基于一些相关资源的见解开发而成,并且整合了 Spotify 和 YouTube 的 API 来查找和下载歌曲。
Github地址
https://github.com/cgzirim/seek-tune
项目功能
-
歌曲识别:通过音频指纹技术识别歌曲,与 Shazam 的核心功能类似。
-
歌曲下载:支持从 Spotify 获取歌曲信息,并通过 YouTube 下载歌曲(需注意版权问题)。
-
本地歌曲管理:可以将本地歌曲保存到数据库中,并为其生成音频指纹,用于后续的匹配识别。
安装与部署
-
依赖环境:
-
Golang:用于运行后端代码,需提前安装。
-
FFmpeg:用于音频处理,需提前安装。
-
NPM:用于运行前端代码,需提前安装。
-
部署方式:
-
克隆项目后,分别进入
client和server目录安装依赖。 -
启动前端应用:在
client目录下运行npm start。 -
启动后端应用:在
server目录下运行go run *.go serve。 -
需安装 Docker 和 Docker Compose。
-
使用命令
docker-compose up --build启动应用,访问http://localhost:8080即可使用。 -
使用命令
docker-compose down停止应用。 -
使用 Docker:
-
本地部署:
使用方法
-
下载歌曲:
-
使用命令
go run *.go download <Spotify 链接>,需提供有效的 Spotify 歌曲链接。 -
保存本地歌曲到数据库:
-
使用命令
go run *.go save [-f|--force] <歌曲文件或目录路径>,可选-f或--force参数,即使未找到 YouTube ID 也会保存歌曲。 -
查找匹配歌曲:
-
使用命令
go run *.go find <wav 文件路径>,程序会尝试匹配数据库中的歌曲,并返回相似度分数。 -
清除数据:
-
使用命令
go run *.go erase,删除数据库中的音频指纹和歌曲信息。
数据库选项
-
默认使用 SQLite 数据库。
-
可切换到 MongoDB 数据库,需设置相关环境变量(如
DB_TYPE、DB_USER、DB_PASS等)来配置连接。