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

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

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

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

Q&A

解決済

1回答

1125閲覧

正弦波を再生した後にwavファイルに書き込みたい

SSDD

総合スコア11

Python

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

0グッド

0クリップ

投稿2021/07/07 06:11

前提・実現したいこと

フーリエ解析のサイトのソースコードから正弦波を作成しようと思っていますが、以下のエラーメッセージが出てしまいました。

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

wave_out=wave.open("./sound_01.wav", 'w') Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'wave' is not defined >>> wave_out.setnchannels(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'wave_out' is not defined >>> wave_out.setsampwidth(2) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'wave_out' is not defined >>> wave_out.setframerate(fs) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'wave_out' is not defined >>> wave_out.writeframes(data_scale_adjust) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'wave_out' is not defined >>> wave_out.close()

該当のソースコード

Python

1import numpy as np 2import sounddevice as sd 3fs = 10e3 4N = 1e5 5amp = 2 * np.sqrt(2) 6time = np.arange(N) / float(fs) 7mod = 500 * np.cos(2 * np.pi * 0.25 * time) 8carrier = amp * np.sin(2 * np.pi * 3e3 * time + mod) 9sd.play(carrier, fs) 10print("再生開始") 11# 再生が終わるまで待つ 12status=sd.wait() 13# wavファイルに書き込む 14# 2バイトのデータとして書き込むためにスケールを調整 15data_scale_adjust=carrier*np.iinfo(np.int16).max 16# 2バイトのデータに変換 17data_scale_adjust=data_scale_adjust.astype(np.int16) 18wave_out=wave.open("./sound_01.wav", 'w') 19wave_out.setnchannels(1) 20wave_out.setsampwidth(2) 21wave_out.setframerate(fs) 22wave_out.writeframes(data_scale_adjust) 23wave_out.close()

試したこと

NameErrorなので変数を設定する必要がある気がするのですが、書き換える方法がわからない

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

Pythonを始めたばかりで初歩的な内容になるのですが解決策を教えて下さると幸いです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

NameError: name 'wave' is not defined

waveが定義されてないって言ってますよ。
こいつはなん(のつもり)でしょうか.

投稿2021/07/07 06:15

編集2021/07/07 06:25
y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SSDD

2021/07/07 06:22

回答ありがとうございます。今、pip install waveをして、該当コード内にimport waveをいれたら エラーメッセージがすべて消えました。これで定義したことになったのでしょうか。また、書き込まれたwavファイルの保存先がどこなのかがわからなくなりました。
y_waiwai

2021/07/07 06:28

"./sound_01.wav" という指定だと、カレントディレクトリ(実行しているディレクトリ?)に保存するようになってます
y_waiwai

2021/07/07 08:15

それでも見つからないなら、そのファイル名でPC内を検索してみては。
SSDD

2021/07/11 17:55

ありがとうございます!カレントディレクトリを探してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問