ai工匠学堂语音识别原理与应用(进阶课)
提取出来的fbank特征放在feature_queue_中,feature_queue_的类型是BlockingQueue<std::vector<float>>。BlockingQueue类是WeNet实现的一个阻塞队列,初始化的时候需要提供队列的容量(capacity),通过Push()函数向队列中增加特征,通过Pop()函数从队列中读取特征:
当feature_queue_中的feature数量超过capacity,则Push线程被挂起,等待feature_queue_.Pop()释放出空间。
当feature_queue_为空,则Pop线程被挂起,等待feature_queue_.Push()。
线程的挂起和恢复是通过C++标准库中的线程同步原语std::mutex、