Я учусь в средней школе 10-го класса и ищу помощи с python аудио. Я не прошу никого делать какую-либо работу за меня, но я зашел в тупик.
Я пытаюсь создать собственную речевую программу, используя python (не используя GTTS или pyttsx). Я пытаюсь создать фонемы посредством синтезированного речевого синтеза.
Я пытался использовать пиаудио и одиночные частоты, и я изучал синусоидальные волны и формы волн, но я все еще изо всех сил пытаюсь создать любую фонему.
Все, что я могу сделать, это создавать звуковые сигналы с разными частотами.
import pyaudio
import numpy as np
p = pyaudio.PyAudio()
volume = 0.5 # range [0.0, 1.0]
fs = 84100 # sampling rate, Hz, must be integer
duration = 1.0 # in seconds, may be float
f = 800.0 # sine frequency, Hz, may be float
# generate samples, note conversion to float32 array
samples = (np.sin(2*np.pi*np.arange(fs*duration)*f/fs)).astype(np.float32)
# for paFloat32 sample values must be in range [-1.0, 1.0]
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=fs,
output=True)
p2 = pyaudio.PyAudio()
volume2 = 0.5 # range [0.0, 1.0]
fs2 = 49100 # sampling rate, Hz, must be integer
duration2 = 1.0 # in seconds, may be float
f2 = 680.0 # sine frequency, Hz, may be float
# generate samples, note conversion to float32 array
samples2 = (np.sin(2*np.pi*np.arange(fs2*duration2)*f2/fs2)).astype(np.float32)
# for paFloat32 sample values must be in range [-1.0, 1.0]
stream2 = p2.open(format=pyaudio.paFloat32,
channels=1,
rate=fs2,
output=True)
# play. May repeat with different volume values (if done interactively)
stream2.write(volume2*samples2)
stream2.stop_stream()
stream2.close()
p2.terminate(
# play. May repeat with different volume values (if done interactively)
stream.write(volume*samples)
stream.stop_stream()
stream.close()
p.terminate()
Как получить фонемы, используя только частоту дискретизации и частоту в python?