これは私の最初の投稿です。再生中に再生速度を変更することはできますか?私は車のエンジン音をシミュレートしたいと思います。最初のステップは、エンジンのRPMに応じてループされたサンプルの速度を変更することです。私は、waveファイルのレートを変更することでpyaudioを使って完全なサンプルの速度を上げる方法を知っていますが、レートの連続的な変更が必要です。これは、resampling(そしてかなり古くなっている)またはsuperdoldであるpysonicを可能にするscikits.samplerateパッケージを使用せずに可能ですか?Python:再生中の音の速さを変える
これは私が現時点で持っているものです。
import pygame, sys
import numpy as np
import pyaudio
import wave
from pygame.locals import *
import random as rd
import os
import time
pygame.init()
class AudioFile:
chunk = 1024
def __init__(self, file, speed):
""" Init audio stream """
self.wf = wave.open(file, 'rb')
self.speed = speed
self.p = pyaudio.PyAudio()
self.stream = self.p.open(
format = self.p.get_format_from_width(self.wf.getsampwidth()),
channels = 1,
rate = speed,
output = True)
def play(self):
""" Play entire file """
data = self.wf.readframes(self.chunk)
while data != '':
self.stream.write(data)
def close(self):
""" Graceful shutdown """
self.stream.close()
self.p.terminate()
a = AudioFile("wave.wav")
a.play()
ピッチの変更を一緒にしてスピードを変えることはできますか? – ederwander