Улучшите качество вашего голоса, увеличив амплитуды гармоник вашего голоса, используя быстрое преобразование Фурье - PullRequest
0 голосов
/ 25 октября 2019

thought: Улучшение качества вашего голоса путем увеличения амплитуд гармоник вашего голоса с помощью быстрого преобразования Фурье: преобразование сигнала временной области в частотную область, затем манипулирование спектром, а затем преобразование его обратно во временную область.

question: Улучшение качества звука с помощью fft. Убедитесь, что звук не искажен и не искажен. Сохраните полученный сигнал временной области как WAV (16 бит) и включите его в свое представление. Укажите, на какую величину вы увеличили амплитуды гармоник и как изменился ваш голос. (мне нужен код)

Ниже приведен код для получения диаграмм во временной и частотной областях.

# -*- coding: utf-8 -*-

import scipy.io.wavfile as wf
import numpy as np
import matplotlib.pyplot as plt

fs, audio = wf.read("/Users/matzoh/Downloads/homework/44khz16bit.wav")

# creating time axis
plt.subplot(2, 1, 1)
time = np.linspace(0, len(audio)/fs, len(audio))
plt.plot(time, audio)

# Adding labels
plt.title('Sound recording')
plt.xlabel('Frequency (Hz)')
plt.ylabel('amplitude')

# plt.plot(time, audio)
# ##freqaxis = np.linspace(0, fs, len(audio))
# creating frequency domain
plt.subplot(2, 1, 2)
fft = np.abs(np.fft.fft(audio))
# plt.plot(freqaxis, fft)

fft2 = fft[0:int(len(fft)/2)]
freqaxis2 = np.linspace(0, fs, len(audio)/2)
fft3 = np.fft.fft(audio)
fft3 = np.abs(fft2)/len(fft2)

fft3 = 20*np.log10(fft2)

plt.plot(fft2)
plt.loglog(fft2)

plt.show()

...