在为儿子研究可能的升级时 ’我在《星球大战》中的赏金猎人服装上遇到了戴夫·谢维特(Dave Shevett)的精彩博文,内容涉及Planet-Geek.com,网址为 使用Raspberry Pi创建语音转换器 万圣节服装。看起来我可以将其整合到我们精心构造的赏金猎人头盔中。
The system uses 索克斯 to 记录ord sound via a microphone, distort it and then send to an amplified speaker.
我收集了硬件,然后跟随戴夫’的脚步声。对于我的项目,我决定使用Raspbian Lite和Pi ZeroW。所有这些都有效,因此,本帖子面向那些想要做类似事情并且可能会发现这些步骤有用的人。
语音转换器硬件
- Raspberry Pi零W
- microUSB转USB适配器
- USB集线器(可选)
- 键盘
- USB声音适配器
- 5V电源
- 扩音器
USB声音适配器
MUSB音频适配器的加密狗东西是“C-Media Electronics Inc CM108音频控制器”。它具有标准的USB插头,3.5毫米麦克风插孔和3.5毫米耳机插孔。里面有一个非常亮的红色LED,我用一些胶带将它们驯服了。
有很多选择,但是’很难知道它们与Pi的兼容性如何。它们可从[易趣]几美元/英镑。
Amplified 扬声器
我买了一个“N74”来自[易趣]的价格为20英镑。它有一个内置的可充电电池,一个电源插座以及两个麦克风。我需要挖出5V电源适配器给它充电。
组态
首先,使用最新的Raspbian Lite映像创建一个新的4GB microSD卡。 皮零应该使用适当的适配器连接到HDMI监视器和键盘。当Pi首次启动时,使用默认的用户名和密码(pi / raspberry)登录。
启动配置实用程序:
sudo raspi-config
并进行以下设置更改:
- 主机名> “VoiceChanger”
- 启动选项> Desktop/CLI > Console Autologin
- 启动选项>在启动时等待网络> No
- 接口选项> SSH > Yes
- 高级选项> Expand Filesystem
选择<Finish>并在出现提示时重启树莓派。
设置WiFi(可选)
将Pi连接到网络后,即可在PC上使用SSH进行其余配置。这样可以节省一些键入时间,因为您可以剪切n粘贴文本并传输文件。
要配置WiFi,请编辑wpa_supplicant.conf文件:
sudo 纳米 /etc/wpa_supplicant/wpa_supplicant.conf
它应该已经包含:
ctrl_interface=/var/run/wpa_supplicant update_config=1
然后插入:
network={ scan_ssid=1 key_mgmt=WPA-PSK WPA-EAP psk="1234567890" ssid="MyWIFISSID" }
使用您自己的密码和SSID。仔细检查值,保存(CTRL-X,Y)并返回命令行。
连接USB音频设备
使用以下命令关闭Pi:
sudo halt
并断开电源。
如果您有USB集线器,则可以同时连接键盘和USB声音接收器。如果要使用SSH连接到Pi,则不要’不需要集线器,并用USB声音加密狗替换键盘。
重新接通电源并让Pi启动。运气好的话,您的Pi将会连接到WiFi并启用SSH。
检查USB音频设备
一旦启动,请使用任何SSH终端实用程序(例如Putty或MobaXterm)连接到Pi。或使用键盘(如果您’ve仍然附有它。
现在检查是否检测到USB音频设备:
lsusb
您应该会看到列出的音频设备以及已连接的任何其他USB设备:
可以使用以下命令查看有关适配器的更多信息:
dmesg | grep C-Media
查找设备’s card number use :
aplay -l
该设备应列为“card 1”.
创建“asoundrc” file using :
sudo 纳米 .asoundrc
并添加以下文本:
pcm.!default { type hw 卡1 } ctl.!default { type hw 卡1 }
这告诉系统将卡1用作默认音频输入和输出。
保存文件(CTRL-X,Y)后,您可以随时使用以下命令检查内容:
cat .asoundrc
Install 索克斯
为了使用“play”我们需要安装的实用程序“SoX” :
sudo apt-get install sox
安装mpg123(可选)
To enable the system to 玩 MP3 files I also installed mp123 but this is optional.
sudo apt-get install mpg123
You can 玩 MP3 files using :
mpg123 mysong.mp3
Alsamixer
要检查扬声器和麦克风是否未静音,可以使用以下命令运行Alsamixer:
alsamixer
这应该显示一个衡量标准“Speaker”, “Mic” and “Auto Gain Control”.
使用箭头键,您可以调整两个通道的增益并打开或关闭自动增益。可以使用M键将通道静音。“MM”如果通道被静音,则出现。按“Esc”返回命令行。
扬声器 Test
将耳机或扬声器连接到加密狗后,您可以使用简单的扬声器测试实用程序:
speaker-test -c2
要么
speaker-test -c2 -t sine -f 500
您应该通过扬声器听到白噪声或500Hz的声音。按CTRL-Z退出测试。
重启
安装完某些软件包并编辑.asoundrc文件后,请重新启动以确保所有更改都处于活动状态。 扬声器-test命令有时会导致“设备或资源繁忙”错误,因此重新启动现在很有用:
sudo reboot
播放WAV文件(可选)
Almost there! If you want to 玩 a test WAV file you can download a test file using :
wget http://www.kozco.com/tech/piano2.wav
and then 玩 using :
玩 piano2.wav
Voice Changing Using 索克斯
使用戴夫·谢维特’的方法,您可以使用以下方法动态更改声音:
玩 "|rec --buffer 2048 -d 沥青 -300 回声 0.8 0.88 100 0.6 150 .5 带 1.2k 1.5k"
使用以下命令处理来自麦克风通道的数据“rec” and passes it to “play”将结果发送给扬声器。
- 缓冲 允许流在将其发送到扬声器之前收集麦克风数据进行处理。这将增加一些延迟。您可以减少数量,但如果可能的话,缓冲区可能会溢出’t keep up.
- 沥青 降低声音的音调
- 回声 添加一些回声(您已经猜到了,对吧?)
- 带 添加一个以1.2kHz为中心,两侧斜率为1.5Hz的滤波器。
All the 索克斯 options are detailed 上 the 索克斯 options page.
You can 玩 around with the options and values to get different effects.
开机自动启动
如果您希望变声器具有便携性,则可以设置脚本以在Pi启动时自动运行play命令。这可以通过配置cron作业来完成。
首先,我们需要创建一个脚本:
纳米 voicechanger.sh
then paste in the 玩 command :
玩 "|rec --buffer 2048 -d 沥青 -300 回声 0.8 0.88 100 0.6 150 .5 带 1.2k 1.5k"
使用以下命令访问Pi用户的cron设置:
crontab -e
选择“nano”是否要求文本编辑器。然后添加以下行:
@reboot sh /home/pi/voicechanger.sh > /home/pi/voicechanger.log 2>&1
使用CTRL-X,Y保存并退出。
When you next reboot the 玩 command should be automatically executed.
最后的想法
我浪费大量时间的一件事是麦克风与USB音频设备的连接。如果将3.5mm插孔完全插入插座,则麦克风不会’工作。我花了很长时间想知道为什么’在我将其轻轻拔出之前,它一直工作着,连接建立并且麦克风按预期工作。
在某些方面,语音转换器效果很好,但实际上并没有’听起来不怎么样。我决定最终不使用变声器,因为我的儿子’他的实际声音在背景中太明显了。在这一点上,我已经介绍了很多内容,因此决定将其编写,以防其他人发现它有用。