質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

pythonでsoxを利用できません

toommauts
toommauts

総合スコア2

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0リアクション

0クリップ

1773閲覧

投稿2021/10/14 20:07

前提・実現したいこと

「pythonで学ぶ音声認識」という本を勉強していて、soxをインポートするソースコードが登場するのですが、
soxのモジュールを認識してくれません。

sox 本体のインストールと、pipによってsoxのラッパーのインストールはできています。

調べたところ、同じことで悩んでいる方がいてPATHを通すことで解決したようなのですが、どこにPATHを通せば良いのかがわかりません。どうすれば良いでしょうか?

使用しているOSはMacOSで、anacondaで仮想環境を立ててjupyternotebookでソースコードを書いています。

発生している問題・エラーメッセージ


ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-e26edfe5b398> in <module> 7 8 # サンプリング周波数を変換するためのモジュール(sox)をインポート ----> 9 import sox 10 11 # osモジュールをインポート ModuleNotFoundError: No module named 'sox'

該当のソースコード

python

# -*- coding: utf-8 -*- # # ダウンロードしたwavファイルを,サンプリングレート16000Hzのデータに変換します. # また,変換したwavデータのリストを作成します. # # サンプリング周波数を変換するためのモジュール(sox)をインポート import sox # osモジュールをインポート import os # # メイン関数 # if __name__ == "__main__": # wavファイルが展開されたディレクトリ original_wav_dir = '../data/original/jsut_ver1.1/basic5000/wav' # フォーマット変換したwavファイルを出力するディレクトリ out_wav_dir = '../data/wav' # wavデータのリストを格納するディレクトリ out_scp_dir = '../data/label/all' # 出力ディレクトリが存在しない場合は作成する os.makedirs(out_wav_dir, exist_ok=True) os.makedirs(out_scp_dir, exist_ok=True) # soxによる音声変換クラスを呼び出す tfm = sox.Transformer() # サンプリング周波数を 16000Hz に変換するよう設定する tfm.convert(samplerate=16000) # wavデータのリストファイルを書き込みモードで開き,以降の処理を実施する with open(os.path.join(out_scp_dir, 'wav.scp'), mode='w') as scp_file: # BASIC5000_0001.wav ~ BASIC5000_5000.wav に対して処理を繰り返し実行 for i in range(5000): filename = 'BASIC5000_%04d' % (i+1) # 変換元のオリジナルデータ (48000Hz)のファイル名 wav_path_in = os.path.join(original_wav_dir, filename+'.wav') # 変換後のデータ(16000Hz)の保存ファイル名 wav_path_out = os.path.join(out_wav_dir, filename+'.wav') print(wav_path_in) # ファイルが存在しない場合はエラー if not os.path.exists(wav_path_in): print('Error: Not found %s' % (wav_path_in)) exit() # サンプリング周波数の変換と保存を実行する tfm.build_file(input_filepath=wav_path_in, output_filepath=wav_path_out) # wavファイルのリストを書き込む scp_file.write('%s %s\n' % (filename, os.path.abspath(wav_path_out)))

試したこと

sox本体とラッパーの再インストール

補足情報(FW/ツールのバージョンなど)

python 3.8.8

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。