Syn歌:プロンプトベースのプレイリストジェネレータ


スーパーシンセサイザーの始まりを発表する興奮!


TLDR


私はちょっとプロジェクトのベータ版を終えましたsynsong.app ) NLP、Python、およびAPIのスキルを練習する.今、あなたは入力ジャンル、人気、および自然言語のプロンプト(文章、引用、または段落など)を入力することができます、それはプロンプトで歌詞、曲のタイトル、およびアーティスト名との一致に基づいてプレイリストを作成します.最終的な目標は自動的にジャンルを検出するためにモデルトレーニングを実践することです.

始まり


synsongの始まりは、超楽しいされている.これは、アイデアから始まる、文章からプレイリストを作成し、ジャンルや人気などの他のプレイリストのカスタマイズの全体の束で終わった.私は最初にバックエンドを作りました.

バックエンド


バックエンドはPythonで書かれていて、すべてのNLPのためにspacyを使います.私はタイトルを得ることによって始めました.nsubj or pobj ) またはlemma_ == "be" ). 歌詞で検索される成分は、Spacyの.noun_chunks 関数.タイトルと構成要素の両方については、ランダムサンプルを取る(タイトルの1と構成要素の5).
次に、成分は、relunantが十分な結果が来ることを確実とするためにアイテムの異なる量でリストのシリーズに置かれます.
# prompt: Potatoes are great food for worms and bugs in the ground.

[['potato', 'great food', 'worm', 'bug', 'ground'], ['great food', 'bug', 'ground'], ['worm', 'bug', 'ground'], ['potato', 'great food', 'worm', 'bug'], ['potato', 'worm', 'bug', 'ground'], ['great food', 'worm', 'bug', 'ground'], ['potato'], ['great food'], ['worm'], ['bug'], ['ground']]
リストをフォーマットし、Musixmatch 入力ジャンルと人気のフィルタとデータベース.30以上の曲がある場合は、コードは、おそらく最も関連性の高い検索結果の順序による最初の30を取るでしょう.
私はその後Spotipy ユーザーのSpotifyアカウントをリンクし、その代わりにプレイリストを作成します.
それは基本的にそれです!すべてのコードを見つけることができますGitHub .

前線


ウェブサイトはFlask , Python WebフレームワークBulma , CSSフレームワークRailway .

デモ


Syntzはホームページでは、ここでは“あなたのSpotifyでログインする”または“アプリに行く”あなたが既にログインしている場合にログインを開始するプロンプトが表示されます.

その後、発電機のページに移動します.

そして、入力することができますプロンプト、ジャンル、およびその他の設定!

あなたがプレイリストを取得します(それはしばらくの間、ロードするページ)後のページで、あなたもあなたのSpotifyアカウントでそれを見ることができます.

そして、それ!

将来計画と既知の問題


私はそれらのスキルに取り組むことができるように、私はマシンの学習の他の側面を持っているのが大好きだし、それを行う方法については、ジャンルの検出を介していると考えている一つの方法.私は、より大きなプロンプトのために話題モデリングで私の手をためしたいです.
たった今、人気のフィルタはあまり調整されません、そして、私はMusixmatchの無料プランであまりに多くのAPI要求をするために少しの危険にさらされています.また、フッターは底に動かない.それ以外にlet me know あなたが他の問題を見つけるならば!

リンク


読書ありがとう!私はビクトリアですvictoriaslocum.com) , で、このプロジェクトのウェブサイトを見つけることができますsynsong.app とギタブhere .