Exemplo n.º 1
0
        private void Button_Read_Click(object sender, RoutedEventArgs e)
        {
            if (Checked == false)
            {
                return;
            }
            var voicer  = AnnouncerSelector.SelectedValue.ToString();
            var content = InputContent.Text;
            var volume  = VolumeRangSeleclor.Value;
            var rate    = RateRangSeleclor.Value;

            VoiceReader.Speak(VoiceReader.Reader.Microsoft, voicer, content, volume, rate);
        }
Exemplo n.º 2
0
        private void Button_Save_Click(object sender, RoutedEventArgs e)
        {
            if (Checked == false)
            {
                return;
            }
            var voicer  = AnnouncerSelector.SelectedValue.ToString();
            var content = InputContent.Text.Trim();
            var volume  = VolumeRangSeleclor.TabIndex;
            var rate    = RateRangSeleclor.TabIndex;
            var title   = (content.Length > 100 ? content.Substring(0, 100) : content).Replace(" ", string.Empty).Replace("\r", string.Empty).Replace("\n", string.Empty);
            var path    = $"{AppDomain.CurrentDomain.BaseDirectory}\\Record\\{title}.wav";

            VoiceReader.Generated(VoiceReader.Reader.Microsoft, voicer, content, path, volume, rate);
            MessageBox.Show($"保存录音文件成功,保存路径:{path}!");
        }
Exemplo n.º 3
0
        internal bool Speech(Entity admin,
                             [CommandArgument("음성으로 출력할 메시지", CommandArgumentOption.AfterAll)] string message)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                return(false);
            }

            VoiceReader.Read(message).ContinueWith(task =>
            {
                var bytes   = task.Result;
                var session = admin.GetSession();
                session.Send(new VoiceMsg {
                    Id = admin.Id, Mp3 = bytes
                });
            });
            return(true);
        }
Exemplo n.º 4
0
        private async void DoSpeech(string userName, string message)
        {
            try
            {
                // 먼저 채팅 메시지를 전파한 후,
                BroadcastChatMsgWithLock(userName, message);

                var mp3Bytes = await VoiceReader.Read(message);
                var mp3Base64 = Convert.ToBase64String(mp3Bytes);

                // 시간 차이가 좀 크겠지만,  Mp3 메시지를 전달한다.
                BroadcastCommandMsgWithLock(InterChatCommandType.Speech, mp3Base64);
            }
            catch (Exception e)
            {
                Logger.Write(e);
            }
        }