如何使用 wave 在 python 中编写声音文件?

问题描述 投票:0回答:0

我正在尝试用 python 制作一个文本到声音文件的转换器,它读取输入的二进制数据并写入与数据匹配的声音文件。

1 是高音 (440 hz),0 是低音 (330 hz)。我尝试了很多不同的东西,我的代码到处都是。有人可以帮我解决吗?

import os
import numpy as np
import winsound
import wave
import struct
import math
import random
# Parameters
sampleRate = 44100    # samples per second
duration = 1           # sample duration (seconds)
frequency = 440.0       # sound frequency (Hz)
print(os.getcwd())
obj = wave.open('sound.wav','w')
obj.setnchannels(1) # mono
obj.setsampwidth(2)
obj.setframerate(sampleRate)
string=input("Enter text to turn into sound file")
binary=' '.join(format(ord(i), 'b') for i in string)
print(binary)
for i in binary:
    if i=="1":
        winsound.Beep(440, 500)
        data=struct.pack('<h', 440)
        obj.writeframesraw( data )
    elif i=="0":
        winsound.Beep(330, 500)
        data=struct.pack('<h', 330)
        obj.writeframesraw( data )
obj.close()
python wave winsound
© www.soinside.com 2019 - 2024. All rights reserved.