audio_analysis 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be4f1696cce0f5398d08f905a45a881fb939ce1e746bed8a943a17e5368473b2
4
- data.tar.gz: 7960769e3356f04183979c3841a4bf891f5d4df4891a74604268be9054ede8ee
3
+ metadata.gz: 7c6ee2bf1738a0fefba9106383ac99014910171a22d0e34f86b72a201a3d3ae5
4
+ data.tar.gz: e5d37d7b4215d3772ce5c46b35e3424134bcdf1f6cf59896eb0380364a7031f0
5
5
  SHA512:
6
- metadata.gz: ca7d64ee01c61dc6da85657f74907de1d42748801319b7042670142d6d63ecbfbb53632b7cb485ec5d01478b067da2d872b5be32c76cd31c8b153339ed04c65b
7
- data.tar.gz: 460d3598f041e3527fe1518cc47f66c93e0ff1745d7ff801a5c06a4a973f7e44bd0330e2392c44091e7369f4acae5fe75ae187ad71595443a32a5efc873354c3
6
+ metadata.gz: fce4fab5dc03e927721825c46999cb0d1e181ad4cd82086d917a69aeb577ce491bbaf4c3310d9849d8665c581059a355e3746ba3095a23b438489da233f3ec56
7
+ data.tar.gz: 3494f50f35eb17713fc752760a3625d58bdb0d48a94e350a3bfbc1cc939f667da73c4b0ac45fa02f37841371d5ab7e93d4486e721fbbdb2ccdaaf6a9dcef1f11
@@ -1,19 +1,25 @@
1
1
  class AudioAnalysis
2
2
  def self.find_bpm(file_path)
3
- `pip install -r lib/requirements.txt`
4
- bpm = `python3 bpm_analysis.py #{file_path}`
3
+ `pip install -r #{gem_path}/lib/python_analysis/requirements.txt`
4
+ bpm = `python3 #{gem_path}/lib/python_analysis/bpm_analysis.py #{file_path}`
5
5
  bpm.to_f
6
6
  end
7
7
 
8
8
  def self.find_key(file_path)
9
- `pip install -r lib/requirements.txt`
10
- `python3 key_analysis.py #{file_path}`
9
+ `pip install -r #{gem_path}/lib/python_analysis/requirements.txt`
10
+ `python3 #{gem_path}/lib/python_analysis/key_analysis.py #{file_path}`
11
11
  end
12
12
 
13
13
  def self.analyze(file_path)
14
- `pip install -r lib/requirements.txt`
15
- bpm = `python3 bpm_analysis.py #{file_path}`
16
- key =`python3 key_analysis.py #{file_path}`
14
+ `pip install -r #{gem_path}/lib/python_analysis/requirements.txt`
15
+ bpm = `python3 #{gem_path}/lib/python_analysis/bpm_analysis.py #{file_path}`
16
+ key =`python3 #{gem_path}/lib/python_analysis/key_analysis.py #{file_path}`
17
17
  { bpm: bpm, key: key }
18
18
  end
19
+
20
+ private
21
+
22
+ def self.gem_path
23
+ Gem.datadir("audio_analysis")
24
+ end
19
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audio_analysis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'Indigo Tech Tutorials '
@@ -17,9 +17,6 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/audio_analysis.rb
20
- - lib/bpm_analysis.py
21
- - lib/key_analysis.py
22
- - lib/requirements.txt
23
20
  homepage: https://rubygems.org/gems/audio_analysis
24
21
  licenses:
25
22
  - MIT
data/lib/bpm_analysis.py DELETED
@@ -1,14 +0,0 @@
1
- import librosa
2
- import sys
3
-
4
- if len(sys.argv) != 2:
5
- print("You have to pass in a file path `python3 analysis.py path_to_file.mp3`")
6
- sys.exit(1)
7
-
8
- audio_file = sys.argv[1]
9
- y, sr = librosa.load(audio_file)
10
-
11
- # Estimate tempo (BPM)
12
- tempo, _ = librosa.beat.beat_track(y=y, sr=sr)
13
-
14
- print(tempo, end='')
data/lib/key_analysis.py DELETED
@@ -1,27 +0,0 @@
1
- import librosa
2
- import numpy as np
3
- import sys
4
-
5
- if len(sys.argv) != 2:
6
- print("You have to pass in a file path `python3 analysis.py path_to_file.mp3`")
7
- sys.exit(1)
8
-
9
- audio_file = sys.argv[1]
10
-
11
- y, sr = librosa.load(audio_file)
12
-
13
- # Compute the Chroma Short-Time Fourier Transform (chroma_stft)
14
- chromagram = librosa.feature.chroma_stft(y=y, sr=sr)
15
-
16
- # Calculate the mean chroma feature across time
17
- mean_chroma = np.mean(chromagram, axis=1)
18
-
19
- # Define the mapping of chroma features to keys
20
- chroma_to_key = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']
21
-
22
- # Find the key by selecting the maximum chroma feature
23
- estimated_key_index = np.argmax(mean_chroma)
24
- estimated_key = chroma_to_key[estimated_key_index]
25
-
26
- # Print the detected key
27
- print(estimated_key, end='')
data/lib/requirements.txt DELETED
@@ -1 +0,0 @@
1
- librosa==0.10.1