我想将 Google 文本转语音的输出录制到 mp3 文件中。我需要一个可以在终端中使用的命令。我读到sox
可以录制音频,但不知道如何设置它来录制我电脑的输出音频。我还希望如果音频输出至少 3 秒无声,则自动停止录制...任何其他用于此目的的工具都是可以接受的。
答案1
首先需要提取输出设备的名称:
为此,您可以安装以下模块:
sudo apt-get install pulseaudio-utils lame mpg123
然后运行:
pacmd list-sinks | grep -e 'name:' -e 'index' -e 'Speakers'
输出可能是这样的:
index: 1
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
index: 23
name: <alsa_output.pci-0000_00_03.0.hdmi-surround71>
找到名称后,您可以运行以下命令将输出录制到 mp3 文件:
parec -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor | lame -r -V0 - out.mp3
或者sox
您可以执行以下操作,但我发现第一个解决方案更为强大:
sox -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -t mp3 test.mp3
但是,如果您想自动开始和停止录制,您可以运行:
sox -v 5 -t pulseaudio alsa_output.pci-0000_00_1b.0.analog-stereo.monitor -t mp3 test.mp3 silence 1 0.1 3% 1 3.0 3%
或者使用parec
:
parec -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor | sox -t raw -b 16 -e signed -c 2 -r 44100 - test.ogg silence 1 0.1 3% 1 3.0 3%
当声音发送到扬声器时,它开始录音,如果 3 秒后没有收到任何内容,则停止录音。有关 sox 的更多信息,请参阅Linux 中的 sox 手册页
答案2
我不知道为什么,但是这些解决方案都对我不起作用。我最终通过安装解决了我的问题:https://chromewebstore.google.com/detail/audio-voice-recorder/deadjnaenmndpdpakgchpbedlcdmmoai (但我只需要从 chrome 录制输出的音频)。我留下评论是因为有人处于同样的情况。