首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不使用WSL2 Ubuntu的音频记录脚本

不使用WSL2 Ubuntu的音频记录脚本
EN

Stack Overflow用户
提问于 2022-04-20 20:27:35
回答 1查看 489关注 0票数 1

我在Ubuntu的WSL2上有以下代码:

代码语言:javascript
运行
复制
import pyaudio,wave

chunk = 1024  # Record in chunks of 1024 samples
sample_format = pyaudio.paInt16  # 16 bits per sample
channels = 2
fs = 44100  # Record at 44100 samples per second
seconds = 3
filename = "output.wav"
p = pyaudio.PyAudio()  # Create an interface to PortAudio

print('Recording')

stream = p.open(format=sample_format,
                channels=channels,
                rate=fs,
                frames_per_buffer=chunk,
                input=True)

frames = []  # Initialize array to store frames
for i in range(0, int(fs / chunk * seconds)):
    data = stream.read(chunk)
    frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()

print('Finished recording')
wf = wave.open(filename, 'wb')
wf.setnchannels(channels)
wf.setsampwidth(p.get_sample_size(sample_format))
wf.setframerate(fs)
wf.writeframes(b''.join(frames))
wf.close()

然而,当我运行代码时,我会得到大量的ALSA错误,而且WSL2似乎没有识别我的麦克风:

我不确定WSL2是否内置了音频支持,因为没有很多从脚本录制音频的例子。我如何修复这些错误,并使WSL2记录音频从我的python脚本?

EN

回答 1

Stack Overflow用户

发布于 2022-04-20 23:34:16

WSL2无法直接访问大多数硬件设备,因此麦克风访问失败也就不足为奇了。

也就是说,有一些方法可以通过WSL2访问某些硬件设备。其中之一是通过USB/IP,通过WSL2 2/Linux共享一个Windows设备。

我曾经使用过USB/IP,但从来没有达到这个特定的目的,所以我不能肯定它会起作用,但我希望它能起作用。理论上,您需要安装在Windows中的USB麦克风,然后通过USB/IP共享该USB设备。

您应该能够通过PyAudio访问设备的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71945812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档