csv 我输出了一个声音文件,但是声音没有添加到wav文件中

gudnpqoy  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(106)

使用mac上的终端,我输出一个连续的声源,以0. 3秒为增量,其频率是桌面上csv文件中写的值,但输出的音频文件中没有声音。我在Audacity中查看了波形,没有记录任何内容,因此在播放设备上似乎没有问题。
Python中的源代码如下:

pip install numpy scipy pydub pandas

import numpy as np
from scipy.io.wavfile import write
import pandas as pd
from pydub import AudioSegment

# Path of the CSV file
csv_path = '/Users/username/Desktop/filename.csv'

# Read the CSV file
data = pd.read_csv(csv_path)

# Extract the columns of values
values = data['column name'].values.

# Set sampling rate and time
sample_rate = 44100 # Sampling rate (Hz)
duration = 0.3 # Length of each sound (seconds)

# Audio generation
audio = AudioSegment.empty()
for value in values:.
    frequency = float(value)
    t = np.linspace(0, duration, int(duration * sample_rate), endpoint=False)
    waveform = np.sin(2 * np.pi * frequency * t)
    audio += AudioSegment(
        waveform.astype(np.int16).tobytes(), sample_width=2, channels=1, frame_rate=sample_rate
    )

# Output file name
output_path = '/Users/username/Desktop/output.wav'

# Export audio file
audio.export(output_path, format='wav')
python /Users/username/Desktop/filename.py

→不显示错误消息,但没有声音添加到wav文件。
我将感激你的帮助。
附加信息:机器:MacBook Pro CPU:Apple M2 Pro OS:macOS Ventura 13.5.2版本:Python 3.10.4

iq3niunx

iq3niunx1#

您的波形都将是-1和1之间的数字。当您将波形转换为int 16值时,所有值都将四舍五入(全部变为0)。在将波形转换为int 16之前,您应该将其乘以32767(int 16的最大范围),看看是否有效。

相关问题