树莓派利用3.5mm接口接扬声器播放语音提示

1.文字转音频获取方式:

  1. 讯飞文字转语音:这里由于讯飞会在开始加上水印声音,所以前面可以写一段无关文字,再延时2s,再写我们需要的文字,水印就加在无用的文字上面了,后面可以切掉——http://peiyin.xunfei.cn/make/
  2. 播放步骤1的音频,使用录音软件录制电脑声卡输出的声音 ——https://www.onlinedown.net/soft/561714.htm
  3. 用MP3剪切工具裁掉讯飞语音加的水印音频——http://www.pc6.com/softview/SoftView_58988.html
  4. MP3转wav——格式工厂

2.树莓派C++代码播放音频

树莓派命令行播放音乐:aplay -D plughw:0,1 XXX.wav
树莓派命令行调整音量大小:amixer -M set PCM 100%
上面命令调用,可以利用耳机口播放音乐
如果代码里面控制,只需要如下调用
system(“amixer -M set PCM 100%”);

3.树莓派增加功放模块

由于耳机口驱动力不够,只能接耳机听,如果接个扬声器,声音很小
所以购买此功放模块,利用树莓派5V供电,驱动2W的扬声器
在这里插入图片描述
由于最大放大时底噪很大,所以需要控制这个功放不使用的时候mute状态,要发声才解mute。
PAM8403引脚功能如下,5号脚是mute脚,低电平mute,默认内置上拉5V,实际测量模块的5脚是连接5V供电的,所以需要用烙铁断开引脚与焊盘连接,连接到我们的树莓派IO口控制mute状态
在这里插入图片描述
实际控制代码如下:

bool play_voice(string voice_path){
    bool ret=false;
    if(access(voice_path.c_str(),0)!=0){
        LOGI("%s file is not exit\n",voice_path.c_str());
        return false;
    }
    string cmd="aplay -D plughw:0,1 "+voice_path;\
    digitalWrite(GPIO_AMP_MUTE, HIGH);//unmute amp
    system("amixer -M set PCM 100%");//max vol
    usleep(10000);
    system(cmd.c_str());
    system("amixer -M set PCM 0%");//min vol
    digitalWrite(GPIO_AMP_MUTE, LOW);//mute amp
    ret=true;
    return ret;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值