{"id":24789166,"url":"https://github.com/cschen1205/java-deep-learning-audio","last_synced_at":"2025-04-10T13:34:54.454Z","repository":{"id":144173860,"uuid":"127699046","full_name":"cschen1205/java-deep-learning-audio","owner":"cschen1205","description":"Audio Deep Learning Project in Java","archived":false,"fork":false,"pushed_at":"2018-04-02T05:43:14.000Z","size":100746,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T12:17:31.349Z","etag":null,"topics":["audio-classification","audio-embedding","audio-processing","audio-search","genres-classification","music-classification","music-recommendation","search-engine","signal-processing"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cschen1205.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-02T03:41:07.000Z","updated_at":"2022-12-23T07:25:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"bb09b85d-5219-4fe4-88b0-870d68a7e067","html_url":"https://github.com/cschen1205/java-deep-learning-audio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschen1205%2Fjava-deep-learning-audio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschen1205%2Fjava-deep-learning-audio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschen1205%2Fjava-deep-learning-audio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cschen1205%2Fjava-deep-learning-audio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cschen1205","download_url":"https://codeload.github.com/cschen1205/java-deep-learning-audio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225873,"owners_count":21068079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-classification","audio-embedding","audio-processing","audio-search","genres-classification","music-classification","music-recommendation","search-engine","signal-processing"],"created_at":"2025-01-29T17:16:15.964Z","updated_at":"2025-04-10T13:34:54.439Z","avatar_url":"https://github.com/cschen1205.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# java-deep-learning-audio\n\nAudio Deep Learning Project in Java\n\n# Predict Music Genres\n\nThe [sample codes](src/main/java/com/github/cschen1205/tensorflow/DeepAudioDemo.java) shows how to \n[DeepAudio](src/main/java/com/github/cschen1205/tensorflow/DeepAudioTensorflow.java) to predict the genres of an\nmusic file:\n\n```java\nimport com.github.cschen1205.tensorflow.commons.FileUtils;\nimport com.github.cschen1205.tensorflow.search.models.AudioSearchEntry;\n\nimport java.io.File;\nimport java.util.Collections;\nimport java.util.List;\n\npublic class MusicGenrePredictionDemo {\n    public static void main(String[] args){\n        DeepAudio classifier = new DeepAudioTensorflow();\n        \n        String folderStoringMusicFiles = \"music_samples\";\n        List\u003cString\u003e paths = FileUtils.getAudioFilePaths(folderStoringMusicFiles, \".au\");\n        \n        Collections.shuffle(paths);\n        \n        for (String path : paths) {\n            System.out.println(\"Predicting \" + path + \" ...\");\n            File f = new File(path);\n            String label = classifier.predictMusicGenres(f);\n        \n            System.out.println(\"Predicted: \" + label);\n        }    \n    }\n}\n\n```\n\n# Music Search\n\nThe [sample codes](src/main/java/com/github/cschen1205/tensorflow/DeepAudioDemo.java) shows how to \n[DeepAudio](src/main/java/com/github/cschen1205/tensorflow/DeepAudioTensorflow.java) to search for similar musics stored\nin your local folder using search query which is the music file of interest:\n\n```java\nimport com.github.cschen1205.tensorflow.commons.FileUtils;\nimport com.github.cschen1205.tensorflow.search.models.AudioSearchEntry;\n\nimport java.io.File;\nimport java.util.Collections;\nimport java.util.List;\n\npublic class MusicSearchEngineDemo {\n    public static void main(String[] args){\n        DeepAudio searchEngine = new DeepAudioTensorflow();\n        if(!searchEngine.loadMusicIndexDbIfExists()) {\n            String folderStoringMusicFiles = \"music_samples\";\n            searchEngine.indexMusicFiles(FileUtils.getAudioFiles(folderStoringMusicFiles, \".au\"));\n            searchEngine.saveMusicIndexDb();\n        }\n\n        int pageIndex = 0;\n        int pageSize = 20;\n        boolean skipPerfectMatch = true;\n        File sample_file = new File(\"mp3_samples/example.mp3\");\n        System.out.println(\"querying similar music to \" + sample_file.getName());\n        List\u003cAudioSearchEntry\u003e result = searchEngine.query(sample_file, pageIndex, pageSize, skipPerfectMatch);\n        for(int i=0; i \u003c result.size(); ++i){\n            System.out.println(\"# \" + i + \": \" + result.get(i).getPath() + \" (distSq: \" + result.get(i).getDistance() + \")\");\n        } \n    }\n}\n\n```\n\n# Song Recommend-er based on user history\n\nThe [sample codes](src/main/java/com/github/cschen1205/tensorflow/DeepAudioDemo.java) shows how to \n[DeepAudio](src/main/java/com/github/cschen1205/tensorflow/DeepAudioTensorflow.java) to recommends other songs based\non user's recent listening history:\n\n```java\nimport com.github.cschen1205.tensorflow.commons.FileUtils;\nimport com.github.cschen1205.tensorflow.search.models.AudioSearchEntry;\n\nimport java.io.File;\nimport java.util.Collections;\nimport java.util.List;\n\npublic class SongRecommendationDemo {\n    private static UserMusicHistory getUserMusicHistory() {\n        UserMusicHistory userHistory = new UserMusicHistory();\n\n        List\u003cString\u003e audioFiles = FileUtils.getAudioFilePaths(\"music_samples\", \".au\");\n        Collections.shuffle(audioFiles);\n\n        for(int i=0; i \u003c 40; ++i){\n            String filePath = audioFiles.get(i);\n            userHistory.logAudio(filePath);\n            try {\n                Thread.sleep(100L);\n            } catch (InterruptedException e) {\n                e.printStackTrace();\n            }\n        }\n\n        return userHistory;\n    }\n\n    public static void main(String[] args){\n         UserMusicHistory userHistory = getUserMusicHistory();\n        \n        DeepAudio recommender = new DeepAudioTensorflow();\n        if(!recommender.loadMusicIndexDbIfExists()) {\n            recommender.indexMusicFiles(FileUtils.getAudioFiles(\"music_samples\", \".au\"));\n            recommender.saveMusicIndexDb();\n        }\n        \n        System.out.println(userHistory.head(10));\n        \n        int k = 10;\n        List\u003cAudioSearchEntry\u003e result = recommender.recommends(userHistory.getHistory(), k);\n        \n        for(int i=0; i \u003c result.size(); ++i){\n            AudioSearchEntry entry = result.get(i);\n            System.out.println(\"Search Result #\" + (i+1) + \": \" + entry.getPath());\n        }\n    }\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcschen1205%2Fjava-deep-learning-audio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcschen1205%2Fjava-deep-learning-audio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcschen1205%2Fjava-deep-learning-audio/lists"}