torchaudio 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ed4c14921f1eee18f5e08ddabfae51e09a9b5a7ef408f1dd67fdf7bfe9622fe
4
- data.tar.gz: 1e37d5b9abed9cab7bf56a8c30a769bc8ff8f8a3e15e78bbb772847c444571b2
3
+ metadata.gz: f35bd53e4a972f24d5d0a0bfbe8ee45a76a203a535a96043608fa768fee71bf4
4
+ data.tar.gz: 2a6061fa3aa68c13352ec7c12a79faf85a332163f92b976614fb2f59a1c53d68
5
5
  SHA512:
6
- metadata.gz: 9ca5436d7e4309dd9659fdce7ee893b122e9da96e9f7b15bf00de5dea32c635e2828a99939f04ef5bf0d9494ab89957829a65002dc3e855fa8a66f54abbbd181
7
- data.tar.gz: d62b2a137c19d3b24facb11eda5c1b81be5841120b505877b8617bee2b9f183dbe4b4d42a95af27447346a3d48476d7faec48b57cd89b88c0ddc9709f1b5d51b
6
+ metadata.gz: 3f3566e6d1cc9bf1467c39350a4c317c2e192d75851c96d725f4e128be42b9fe9ab9be9c3b6ff33a4ab23f38d7d63b820f001f5b9e4af888f8e8b9b98fe795a5
7
+ data.tar.gz: bde46760427829d4c9955eba0da00f900425e44cb1fe93c6788691c964949d30d9a47ee3e896df226327294018ea4d4149acc25102e85598394644d5f0e3b568
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.3.0 (2022-07-06)
2
+
3
+ - Added `center`, `pad_mode`, and `onesided` options to `Spectogram` transform
4
+ - Dropped support for Ruby < 2.7
5
+
1
6
  ## 0.2.1 (2021-07-16)
2
7
 
3
8
  - Added `create_dct` method
data/LICENSE.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  BSD 2-Clause License
2
2
 
3
3
  Copyright (c) 2017 Facebook Inc. (Soumith Chintala),
4
- Copyright (c) 2020-2021 Andrew Kane,
4
+ Copyright (c) 2020-2022 Andrew Kane,
5
5
  All rights reserved.
6
6
 
7
7
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # TorchAudio
1
+ # TorchAudio Ruby
2
2
 
3
3
  :fire: An audio library for Torch.rb
4
4
 
5
- [![Build Status](https://github.com/ankane/torchaudio/workflows/build/badge.svg?branch=master)](https://github.com/ankane/torchaudio/actions)
5
+ [![Build Status](https://github.com/ankane/torchaudio-ruby/workflows/build/badge.svg?branch=master)](https://github.com/ankane/torchaudio-ruby/actions)
6
6
 
7
7
  ## Installation
8
8
 
@@ -15,7 +15,7 @@ brew install sox
15
15
  Add this line to your application’s Gemfile:
16
16
 
17
17
  ```ruby
18
- gem 'torchaudio'
18
+ gem "torchaudio"
19
19
  ```
20
20
 
21
21
  ## Getting Started
@@ -134,22 +134,22 @@ addons:
134
134
 
135
135
  ## History
136
136
 
137
- View the [changelog](https://github.com/ankane/torchaudio/blob/master/CHANGELOG.md)
137
+ View the [changelog](https://github.com/ankane/torchaudio-ruby/blob/master/CHANGELOG.md)
138
138
 
139
139
  ## Contributing
140
140
 
141
141
  Everyone is encouraged to help improve this project. Here are a few ways you can help:
142
142
 
143
- - [Report bugs](https://github.com/ankane/torchaudio/issues)
144
- - Fix bugs and [submit pull requests](https://github.com/ankane/torchaudio/pulls)
143
+ - [Report bugs](https://github.com/ankane/torchaudio-ruby/issues)
144
+ - Fix bugs and [submit pull requests](https://github.com/ankane/torchaudio-ruby/pulls)
145
145
  - Write, clarify, or fix documentation
146
146
  - Suggest or add new features
147
147
 
148
148
  To get started with development:
149
149
 
150
150
  ```sh
151
- git clone https://github.com/ankane/torchaudio.git
152
- cd torchaudio
151
+ git clone https://github.com/ankane/torchaudio-ruby.git
152
+ cd torchaudio-ruby
153
153
  bundle install
154
154
  bundle exec rake compile
155
155
  bundle exec rake test
@@ -20,18 +20,9 @@ $CXXFLAGS += " -D_GLIBCXX_USE_CXX11_ABI=1"
20
20
 
21
21
  apple_clang = RbConfig::CONFIG["CC_VERSION_MESSAGE"] =~ /apple clang/i
22
22
 
23
- # check omp first
24
- if have_library("omp") || have_library("gomp")
25
- $CXXFLAGS += " -Xclang" if apple_clang
26
- $CXXFLAGS += " -fopenmp"
27
- end
28
-
29
23
  if apple_clang
30
- # silence ruby/intern.h warning
31
- $CXXFLAGS += " -Wno-deprecated-register"
32
-
33
24
  # silence torch warnings
34
- $CXXFLAGS += " -Wno-shorten-64-to-32 -Wno-missing-noreturn"
25
+ $CXXFLAGS += " -Wno-deprecated-declarations"
35
26
  else
36
27
  # silence rice warnings
37
28
  $CXXFLAGS += " -Wno-noexcept-type"
@@ -15,7 +15,9 @@ module TorchAudio
15
15
  end
16
16
 
17
17
  # follows redirects
18
- def download_url_to_file(url, dst, hash_value, hash_type)
18
+ def download_url_to_file(url, dst, hash_value, hash_type, redirects = 0)
19
+ raise "Too many redirects" if redirects > 10
20
+
19
21
  uri = URI(url)
20
22
  tmp = nil
21
23
  location = nil
@@ -41,7 +43,7 @@ module TorchAudio
41
43
  end
42
44
 
43
45
  if location
44
- download_url_to_file(location, dst)
46
+ download_url_to_file(location, dst, hash_value, hash_type, redirects + 1)
45
47
  else
46
48
  # check hash
47
49
  # TODO use hash_type
@@ -1,7 +1,7 @@
1
1
  module TorchAudio
2
2
  module Functional
3
3
  class << self
4
- def spectrogram(waveform, pad, window, n_fft, hop_length, win_length, power, normalized)
4
+ def spectrogram(waveform, pad, window, n_fft, hop_length, win_length, power, normalized, center: true, pad_mode: "reflect", onesided: true)
5
5
  if pad > 0
6
6
  # TODO add "with torch.no_grad():" back when JIT supports it
7
7
  waveform = Torch::NN::Functional.pad(waveform, [pad, pad], "constant")
@@ -19,22 +19,25 @@ module TorchAudio
19
19
  hop_length: hop_length,
20
20
  win_length: win_length,
21
21
  window: window,
22
- center: true,
23
- pad_mode: "reflect",
22
+ center: center,
23
+ pad_mode: pad_mode,
24
24
  normalized: false,
25
- onesided: true
25
+ onesided: onesided,
26
+ return_complex: true
26
27
  )
27
28
 
28
29
  # unpack batch
29
- spec_f = spec_f.reshape(shape[0..-2] + spec_f.shape[-3..-1])
30
+ spec_f = spec_f.reshape(shape[0..-2] + spec_f.shape[-2..-1])
30
31
 
31
32
  if normalized
32
- spec_f.div!(window.pow(2.0).sum.sqrt)
33
+ spec_f /= window.pow(2.0).sum.sqrt
33
34
  end
34
- if power
35
- spec_f = complex_norm(spec_f, power: power)
35
+ if !power.nil?
36
+ if power == 1
37
+ return spec_f.abs
38
+ end
39
+ return spec_f.abs.pow(power)
36
40
  end
37
-
38
41
  spec_f
39
42
  end
40
43
 
@@ -3,7 +3,8 @@ module TorchAudio
3
3
  class Spectrogram < Torch::NN::Module
4
4
  def initialize(
5
5
  n_fft: 400, win_length: nil, hop_length: nil, pad: 0,
6
- window_fn: Torch.method(:hann_window), power: 2.0, normalized: false, wkwargs: nil
6
+ window_fn: Torch.method(:hann_window), power: 2.0, normalized: false, wkwargs: nil,
7
+ center: true, pad_mode: "reflect", onesided: true
7
8
  )
8
9
 
9
10
  super()
@@ -17,10 +18,16 @@ module TorchAudio
17
18
  @pad = pad
18
19
  @power = power
19
20
  @normalized = normalized
21
+ @center = center
22
+ @pad_mode = pad_mode
23
+ @onesided = onesided
20
24
  end
21
25
 
22
26
  def forward(waveform)
23
- F.spectrogram(waveform, @pad, @window, @n_fft, @hop_length, @win_length, @power, @normalized)
27
+ F.spectrogram(
28
+ waveform, @pad, @window, @n_fft, @hop_length, @win_length, @power, @normalized,
29
+ center: @center, pad_mode: @pad_mode, onesided: @onesided
30
+ )
24
31
  end
25
32
  end
26
33
  end
@@ -1,3 +1,3 @@
1
1
  module TorchAudio
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/torchaudio.rb CHANGED
@@ -95,7 +95,7 @@ module TorchAudio
95
95
  end
96
96
 
97
97
  def save_encinfo(filepath, src, channels_first: true, signalinfo: nil, encodinginfo: nil, filetype: nil)
98
- ch_idx, len_idx = channels_first ? [0, 1] : [1, 0]
98
+ ch_idx, _len_idx = channels_first ? [0, 1] : [1, 0]
99
99
 
100
100
  # check if save directory exists
101
101
  abs_dirpath = File.dirname(File.expand_path(filepath))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torchaudio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-16 00:00:00.000000000 Z
11
+ date: 2022-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: torch-rb
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.7.0
19
+ version: 0.11.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.7.0
26
+ version: 0.11.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rice
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ files:
74
74
  - lib/torchaudio/transforms/spectrogram.rb
75
75
  - lib/torchaudio/transforms/vol.rb
76
76
  - lib/torchaudio/version.rb
77
- homepage: https://github.com/ankane/torchaudio
77
+ homepage: https://github.com/ankane/torchaudio-ruby
78
78
  licenses:
79
79
  - BSD-2-Clause
80
80
  metadata: {}
@@ -86,14 +86,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '2.6'
89
+ version: '2.7'
90
90
  required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  requirements: []
96
- rubygems_version: 3.2.22
96
+ rubygems_version: 3.3.7
97
97
  signing_key:
98
98
  specification_version: 4
99
99
  summary: Data manipulation and transformation for audio signal processing