Beispiel #1
0
        //Change voice properties according to selected voice index.
        private void ChangeVoiceProperties(int iVoiceIndex)
        {
            Jtts.JTTS_VOICEATTRIBUTE vAtt = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_VOICEATTRIBUTE();
            Jtts.jTTS_GetVoiceAttribute(iVoiceIndex, out vAtt);
            textBoxVoiceID.Text = vAtt.szVoiceID;
            textBoxAge.Text     = strAge[vAtt.nAge];

            textBoxDomain.Text = "";
            for (int i = Jtts.DOMAIN_MIN; i <= Jtts.DOMAIN_MAX; i++)
            {
                uint uiTemp = (vAtt.dwDomainArray & ((uint)0x01 << i));
                if (uiTemp != 0)
                {
                    Jtts.JTTS_DOMAINATTRIBUTE dAtt = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_DOMAINATTRIBUTE();
                    Jtts.jTTS_GetDomainAttributeByValue((uint)i, out dAtt);
                    textBoxDomain.Text += dAtt.szName + " ";
                }
            }

            textBoxEngine.Text = vAtt.szDLLName;

            uint uiVersion1 = (vAtt.dwVersionMS & (uint)0xFFFF0000) >> 16;
            uint uiVersion2 = (vAtt.dwVersionMS & (uint)0x0000FFFF);
            uint uiVersion3 = (vAtt.dwVersionLS & (uint)0xFFFF0000) >> 16;
            uint uiVersion4 = (vAtt.dwVersionLS & (uint)0x0000FFFF);

            textBoxVersion.Text = uiVersion1.ToString() + '.' + uiVersion2.ToString() + '.'
                                  + uiVersion3.ToString() + '.' + uiVersion4.ToString();

            textBoxVendor.Text = vAtt.szVendor;
        }
Beispiel #2
0
        private void ButtonPlayToFile_Click(object sender, EventArgs e)
        {
            if (CheckTextIsEmpty())
            {
                return;
            }
            SaveFileDialog fDlg = new SaveFileDialog();

            //fDlg.Filter = "Wave File(*.wav)|*.wav|All File(*.*)|*.*";
            if (iFileFormat == Jtts.FORMAT_WAV ||
                iFileFormat == Jtts.FORMAT_WAV_8K8B || iFileFormat == Jtts.FORMAT_WAV_8K16B ||
                iFileFormat == Jtts.FORMAT_WAV_16K8B || iFileFormat == Jtts.FORMAT_WAV_16K16B ||
                iFileFormat == Jtts.FORMAT_WAV_11K8B || iFileFormat == Jtts.FORMAT_WAV_11K16B ||
                ((iFileFormat == Jtts.FORMAT_ALAW_8K || iFileFormat == Jtts.FORMAT_uLAW_8K) &&
                 (iFileHead == Jtts.PLAYTOFILE_ADDHEAD)))
            {
                fDlg.Filter = "Wave File (*.wav)|*.wav|All Files(*.*)|*.*";
            }
            else if (iFileFormat == Jtts.FORMAT_VOX_6K || iFileFormat == Jtts.FORMAT_VOX_8K)
            {
                fDlg.Filter = "Vox File (*.vox)|*.vox|All Files(*.*)|*.*";
            }
            else
            {
                fDlg.Filter = "ALaw or uLaw File (*.law)|*.law|All Files(*.*)|*.*";
            }
            if (DialogResult.OK == fDlg.ShowDialog(this))
            {
                Jtts.JTTS_CONFIG config = new Jtts.JTTS_CONFIG();
                int iErr = Jtts.jTTS_Get(out config);
                Jtts.jTTS_PlayToFile(textBoxContent.Text, fDlg.FileName, 0, ref config, 0, 0, 0);
            }
        }
Beispiel #3
0
        private void ButtonInit_Click(object sender, EventArgs e)
        {
            DlgInit dlg = new DlgInit();

            if (DialogResult.OK == dlg.ShowDialog(this))
            {
                string strLibPath  = null;
                string strSerialNO = null;
                int    iErr        = 0;

                dlg.GetData(out strLibPath, out strSerialNO);

                if (bInitialed)
                {
                    iErr = Jtts.jTTS_End();
                }
                iErr = Jtts.jTTS_Init(strLibPath, strSerialNO);
                if (Jtts.ERR_NONE == iErr || Jtts.ERR_ALREADYINIT == iErr)
                {
                    bInitialed = true;
                    MessageBox.Show("初始化成功!");
                }
                else
                {
                    JttsErrMsg(iErr);
                }
            }
            dlg.Dispose();
        }
Beispiel #4
0
        private void ButtonStop_Click(object sender, EventArgs e)
        {
            int iErr = Jtts.jTTS_Stop();

            if (Jtts.ERR_NONE != iErr)
            {
                JttsErrMsg(iErr);
            }
        }
Beispiel #5
0
        private void ButtonPlay_Click(object sender, EventArgs e)
        {
            if (CheckTextIsEmpty())
            {
                return;
            }
            int iErr = Jtts.jTTS_Play(textBoxContent.Text, 0);

            if (Jtts.ERR_NONE != iErr)
            {
                JttsErrMsg(iErr);
            }
            else
            {
                MessageBox.Show("完成");
            }
        }
Beispiel #6
0
        public DlgSetup()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //

            //Initialize stirng of gender and age in VOICEATTRIBUTE.
            strGender    = new string[3];
            strGender[0] = "女声";
            strGender[1] = "男声";
            strGender[2] = "中性";
            strAge       = new string[5];
            strAge[0]    = "婴儿";
            strAge[1]    = "少年";
            strAge[2]    = "青年";
            strAge[3]    = "成年";
            strAge[4]    = "老年";

            //CodePage
            iCodePage    = new ushort[7];
            iCodePage[0] = Jtts.CODEPAGE_GB;
            iCodePage[1] = Jtts.CODEPAGE_BIG5;
            iCodePage[2] = Jtts.CODEPAGE_SHIFTJIS;
            iCodePage[3] = Jtts.CODEPAGE_ISO8859_1;
            iCodePage[4] = Jtts.CODEPAGE_UNICODE;
            iCodePage[5] = Jtts.CODEPAGE_UNICODE_BIGE;
            iCodePage[6] = Jtts.CODEPAGE_UTF8;

            //Initialize comboBoxDomain.
            int iDomainCount = Jtts.jTTS_GetDomainCount();

            Jtts.JTTS_DOMAINATTRIBUTE dAtt = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_DOMAINATTRIBUTE();
            for (int i = 0; i < iDomainCount; i++)
            {
                Jtts.jTTS_GetDomainAttribute((uint)i, out dAtt);
                comboBoxDomain.Items.Add(dAtt.szName);
            }
        }
Beispiel #7
0
        public FrmMain()
        {
            InitializeComponent();

            int iErr = Jtts.jTTS_Init(null, null);

            if (Jtts.ERR_NONE == iErr || Jtts.ERR_ALREADYINIT == iErr)
            {
                bInitialed = true;
                MessageBox.Show("初始化成功");
            }
            else
            {
                JttsErrMsg(iErr);
            }
            Jtts.JTTS_CONFIG config = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_CONFIG();
            iErr             = Jtts.jTTS_Get(out config);
            config.nCodePage = (ushort)Encoding.Default.CodePage;
            Jtts.jTTS_Set(ref config);
        }
Beispiel #8
0
        private void ButtonSetting_Click(object sender, EventArgs e)
        {
            int iErr = 0;

            Jtts.JTTS_CONFIG config = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_CONFIG();
            iErr = Jtts.jTTS_Get(out config);
            DlgSetup dlg = new DlgSetup();

            //Set data
            dlg.SetJttsConfig(config);
            dlg.FileFormat = iFileFormat;
            dlg.FileHead   = iFileHead;
            if (DialogResult.OK == dlg.ShowDialog(this))
            {
                dlg.GetJttsConfig(ref config);
                Jtts.jTTS_Set(ref config);
                iFileFormat = dlg.FileFormat;
                iFileHead   = dlg.FileHead;
            }
            dlg.Dispose();
        }
Beispiel #9
0
        //Initialize dialog's state according to in-param[config].
        public void SetJttsConfig(Jtts.JTTS_CONFIG config)
        {
            int i = 0;
            //Get all voice and add to "comboBoxVoice".
            int iVoiceCount        = Jtts.jTTS_GetVoiceCount();
            int iDefaultVoiceIndex = 0;                 //Index of default voice.

            for (i = 0; i < iVoiceCount; i++)
            {
                Jtts.JTTS_VOICEATTRIBUTE vAtt = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_VOICEATTRIBUTE();
                Jtts.jTTS_GetVoiceAttribute(i, out vAtt);

                Jtts.JTTS_LANGATTRIBUTE lAtt = new InfoQuick.SinoVoice.Tts.Jtts.JTTS_LANGATTRIBUTE();
                Jtts.jTTS_GetLangAttributeByValue(vAtt.nLanguage, out lAtt);

                string strVoiceDescribe = vAtt.szName + '(' + lAtt.szName + " " + strGender[vAtt.nGender] + ')';
                comboBoxVoice.Items.Add(strVoiceDescribe);

                //Get index of default voice.
                if (config.szVoiceID == vAtt.szVoiceID)
                {
                    iDefaultVoiceIndex = i;
                }
            }
            //Set default voice.
            comboBoxVoice.SelectedIndex = iDefaultVoiceIndex;

            comboBoxDomain.SelectedIndex   = config.nDomain;
            comboBoxCodePage.SelectedIndex = CodePageFromValueToIndex(config.nCodePage);
            comboBoxDigital.SelectedIndex  = config.nDigitMode;
            comboBoxEnglish.SelectedIndex  = config.nEngMode;
            comboBoxTag.SelectedIndex      = config.nTagMode;

            trackBarVolume.Value = config.nVolume;
            trackBarSpeed.Value  = config.nSpeed;
            trackBarPitch.Value  = config.nPitch;

            checkBoxPunctuation.Checked       = ((config.nPuncMode & (short)0x01) != 0)? true : false;
            checkBoxReturnCutSentence.Checked = ((config.nPuncMode & (short)0x02) != 0)? true : false;
        }
Beispiel #10
0
        private Response Call(dynamic _)
        {
            //var name = Request.Query["Name"];//get请求获取方法

            string msg  = getPara("msg");
            int    iErr = Jtts.jTTS_Play(msg, 0);

            if (Jtts.ERR_NONE != iErr)
            {
                Log4.Debug("错误号" + iErr);
                AppReportManager.Instance.Send(new LogEntity()
                {
                    Log = "错误号" + iErr
                });
                return(Fail("错误号" + iErr));
            }
            Log4.Debug("成功");
            AppReportManager.Instance.Send(new LogEntity()
            {
                Log = "成功"
            });
            return(Success("成功"));
        }