科大讯飞机器伴侣


前言

Github链接:https://github.com/HYX123/MyProject.git
随着信息化技术的不断升温,人们的生活方式、工作习惯也在潜移默化中有了新的飞跃。语音识别与语音合成运用在智能化设备中,给我们的生活中带来了极大的便利。本项目使用全国语音识别方向最大的公司科大讯飞中的SDK接口与目前最主流的AI技术,以C++为基础,采用QT设计程序,实现使用语音与智能机器进行交流,并用语音合成实现各种操作。


一、功能模块

1.登录模块

QString user = ui->lineEdit->text();
    QString psd = ui->lineEdit_2 ->text();
    if(user == "123456" && psd == "123456")
    {
   
        Towinterface *ww=new Towinterface(this);
        ww->show();   //账号密码输入正确后,弹出主界面

        this->hide(); //隐藏登录窗口
}

通过字符串形式添加账户,利用SQL导入注册信息表功能有待开发

2.选择界面

首先开启线程:

void Towinterface::showEvent(QShowEvent *event)  //窗口显示时,开启线程
{
   
    thread->start();
}

void Towinterface::hideEvent(QHideEvent *event)   //窗口关闭时,关闭线程
{
   
    thread->terminate();
}
}
<font color=#999AAA >定义一个线程类,写入语音输入功能:
void New_Thread::run()
{
   
    while(1)
    {
   
        system("echo  star  >  /home/gec/pipeg");  //在终端打开管道
        int fd = open("/home/gec/pipe",O_RDWR);
        char buf[4096]={
   0};
        ::read(fd,buf,4096);

        QString msg = buf;
        msg.remove(msg.indexOf("<rawtext>"));
        QString word=msg.mid(msg.indexOf("<rawtext>")+9,msg.indexOf("</rawtext>")-(msg.indexOf("<rawtext>")+9));
            qDebug()<<word;

            emit sendTime(word);  // emit 把connect信号与槽关联起来

        //延时函数
        QThread::sleep(1);

    }
}

当系统听到“语音模式”时,才能进行后续操作:

void Towinterface::getTime(QString t)
{
   
    int n=0;
    if(t=="语音模式")
    {
   
        n=1;
        ui->label->setText("语音模式");
    }
    ui->label->setText("语音模式");

系统接受到语音提示时,打开对应窗口,听到“关闭语音”时,终止线程:

if(t=="视频播放"&&n==1)
    {
   
        QPlayer *mm = new QPlayer(this);
        mm->show();
        this->
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值