Add non-streaming speech recognition examples for MFC (#212)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
|
||||
// NonStreamingSpeechRecognitionDlg.h : header file
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "portaudio.h"
|
||||
#include "sherpa-onnx/c-api/c-api.h"
|
||||
|
||||
class Microphone {
|
||||
public:
|
||||
Microphone();
|
||||
~Microphone();
|
||||
};
|
||||
|
||||
// CNonStreamingSpeechRecognitionDlg dialog
|
||||
class CNonStreamingSpeechRecognitionDlg : public CDialogEx {
|
||||
// Construction
|
||||
public:
|
||||
CNonStreamingSpeechRecognitionDlg(
|
||||
CWnd *pParent = nullptr); // standard constructor
|
||||
~CNonStreamingSpeechRecognitionDlg();
|
||||
|
||||
// Dialog Data
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_NONSTREAMINGSPEECHRECOGNITION_DIALOG };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange *pDX); // DDX/DDV support
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// Generated message map functions
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnBnClickedOk();
|
||||
int RunThread();
|
||||
|
||||
private:
|
||||
Microphone mic_;
|
||||
|
||||
SherpaOnnxOfflineRecognizer *recognizer_ = nullptr;
|
||||
SherpaOnnxOfflineRecognizerConfig config_;
|
||||
|
||||
PaStream *pa_stream_ = nullptr;
|
||||
CButton my_btn_;
|
||||
CEdit my_text_;
|
||||
std::vector<std::string> results_;
|
||||
|
||||
public:
|
||||
bool started_ = false;
|
||||
std::vector<float> samples_;
|
||||
|
||||
private:
|
||||
void AppendTextToEditCtrl(const std::string &s);
|
||||
void AppendLineToMultilineEditCtrl(const std::string &s);
|
||||
void InitMicrophone();
|
||||
|
||||
bool Exists(const std::string &filename);
|
||||
void InitRecognizer();
|
||||
|
||||
void InitParaformer();
|
||||
void ShowInitRecognizerHelpMessage();
|
||||
};
|
||||
Reference in New Issue
Block a user