编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

[python]“一把十首”倒放“我是傻b”验证

wxchong 2024-07-06 00:54:48 开源技术 122 ℃ 0 评论

大家有没有看过“一把十首”倒放变成“我是傻逼”视频?

我现在利用python的pyaudio进行验证一下。

自己录一段语音

import wave
import pyaudio

# 定义数据流块
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
# 录音时间
RECORD_SECONDS = 5
# 要写入的文件名
WAVE_OUTPUT_FILENAME = "ybss.wav"
# 创建PyAudio对象
p = pyaudio.PyAudio()

# 打开数据流
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

# 开始录音
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

# 停止数据流
stream.stop_stream()
stream.close()

# 关闭PyAudio
p.terminate()

# 写入录音文件
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

播放&倒放

import pyaudio  
import wave  
import sys  
  
#定义数据流块  
chunk = 160

#只读方式打开wav文件  
f = wave.open(r"ybss.wav","rb")  
p = pyaudio.PyAudio()  
  
#打开数据流  
stream = p.open(format = p.get_format_from_width(f.getsampwidth()),  
                channels = f.getnchannels(),  
                rate = f.getframerate(),  
                output = True)  

#读取数据  
data = f.readframes(chunk)
pdata = data
mdata = data
  
#播放 & 倒放
while data != b'':  
    #stream.write(data)
    #print(len(data))
    pdata = pdata + data
    mdata = data + mdata
    data = f.readframes(chunk)  
print("正放", len(pdata))
stream.write(pdata)
print("倒放", len(mdata))
stream.write(mdata)

#停止数据流  
stream.stop_stream()  
stream.close()  
  
#关闭 PyAudio  
p.terminate()  


# 写入录音文件
frames = []
frames.append(pdata)
frames.append(mdata)
wf = wave.open(r"ybss_p.wav", 'wb')
wf.setnchannels(f.getnchannels())
wf.setsampwidth(f.getsampwidth())
wf.setframerate(f.getframerate())
wf.writeframes(b''.join(frames))
wf.close()

以上代码实现正放和倒放,可以体验一下是不是变成“我是傻b了”

附上音频感受一下:



为什么呢?好神奇!!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表