Add examples for Visual C++ MFC (#208)
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
|
||||
// StreamingSpeechRecognitionDlg.h : header file
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "portaudio.h"
|
||||
#include "sherpa-onnx/c-api/c-api.h"
|
||||
|
||||
class Microphone {
|
||||
public:
|
||||
Microphone();
|
||||
~Microphone();
|
||||
};
|
||||
|
||||
class RecognizerThread;
|
||||
|
||||
// CStreamingSpeechRecognitionDlg dialog
|
||||
class CStreamingSpeechRecognitionDlg : public CDialogEx {
|
||||
// Construction
|
||||
public:
|
||||
CStreamingSpeechRecognitionDlg(
|
||||
CWnd *pParent = nullptr); // standard constructor
|
||||
~CStreamingSpeechRecognitionDlg();
|
||||
|
||||
// Dialog Data
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_STREAMINGSPEECHRECOGNITION_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()
|
||||
private:
|
||||
Microphone mic_;
|
||||
|
||||
SherpaOnnxOnlineRecognizer *recognizer_ = nullptr;
|
||||
|
||||
PaStream *pa_stream_ = nullptr;
|
||||
RecognizerThread *thread_;
|
||||
CButton my_btn_;
|
||||
CEdit my_text_;
|
||||
|
||||
public:
|
||||
bool started_ = false;
|
||||
SherpaOnnxOnlineStream *stream_ = nullptr;
|
||||
|
||||
public:
|
||||
int RunThread();
|
||||
afx_msg void OnBnClickedOk();
|
||||
|
||||
private:
|
||||
void AppendTextToEditCtrl(const std::string &s);
|
||||
void AppendLineToMultilineEditCtrl(const std::string &s);
|
||||
void InitMicrophone();
|
||||
|
||||
bool Exists(const std::string &filename);
|
||||
void InitRecognizer();
|
||||
};
|
||||
|
||||
class RecognizerThread : public CWinThread {
|
||||
public:
|
||||
RecognizerThread(CStreamingSpeechRecognitionDlg *dlg) : dlg_(dlg) {}
|
||||
virtual BOOL InitInstance() { return TRUE; }
|
||||
virtual int Run() { return dlg_->RunThread(); }
|
||||
|
||||
private:
|
||||
CStreamingSpeechRecognitionDlg *dlg_;
|
||||
};
|
||||
Reference in New Issue
Block a user