본문 바로가기
카테고리 없음

C#에서 Windows Forms을 사용하여 음성 인식 채팅창을 만드는 방법

by 마인쥬리 2025. 5. 3.
 

 

C#에서 Windows Forms을 사용하여 음성 인식 채팅창을 만드는 방법을 알려드릴게요. 이 작업을 수행하려면 System.Speech 네임스페이스를 사용하여 음성 인식을 구현하고, Windows Forms을 활용해 UI를 디자인하면 됩니다.

1. 프로젝트 설정

  • Visual Studio에서 새 C# Windows Forms 프로젝트를 생성합니다.
  • System.Speech 네임스페이스를 추가하려면 프로젝트에 System.Speech 참조를 추가합니다.

2. 음성 인식 클래스 생성

다음 코드로 기본적인 음성 인식을 설정할 수 있습니다:

 
using System;
using System.Speech.Recognition;
using System.Windows.Forms;

namespace VoiceChatApp
{
    public partial class Form1 : Form
    {
        private SpeechRecognitionEngine recognizer;

        public Form1()
        {
            InitializeComponent();
            InitializeSpeechRecognition();
        }

        private void InitializeSpeechRecognition()
        {
            recognizer = new SpeechRecognitionEngine();
            recognizer.SetInputToDefaultAudioDevice();

            Choices commands = new Choices();
            commands.Add(new string[] { "hello", "how are you", "exit" });

            GrammarBuilder gb = new GrammarBuilder();
            gb.Append(commands);

            Grammar g = new Grammar(gb);
            recognizer.LoadGrammar(g);

            recognizer.SpeechRecognized += Recognizer_SpeechRecognized;
            recognizer.RecognizeAsync(RecognizeMode.Multiple);
        }

        private void Recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            textBoxChat.AppendText($"User: {e.Result.Text}\r\n");
        }
    }
}

3. UI 구성

  • TextBox 컨트롤을 사용하여 채팅 기록을 표시합니다 (textBoxChat).
  • 필요하면 버튼을 추가하여 음성 인식을 활성화하거나 비활성화하는 기능을 구현할 수 있습니다.

이제 응용 프로그램을 실행하면 사용자의 음성을 감지하고 textBoxChat에 채팅 메시지가 표시됩니다! 🎤💬

 

System.Speech 참조가 없는데 라이브러리를 설치해야되나요
 

System.Speech 네임스페이스는 .NET Framework에서 기본적으로 제공되지만, .NET Core 또는 .NET 5 이상에서는 기본적으로 포함되지 않습니다.

 

확인 방법:

  1. 프로젝트가 .NET Framework인지 확인하세요 (.NET Core 또는 .NET 5/6이 아니라면 System.Speech가 기본 포함됨).
  2. .NET Core 또는 .NET 5/6을 사용 중이라면 System.Speech는 기본적으로 제공되지 않으므로 다른 라이브러리를 사용해야 합니다.

해결 방법:.NET Framework 사용 시:

  • Visual Studio에서 참조 추가 (System.Speech.dll)를 수동으로 설정하세요.
    • 솔루션 탐색기 → 참조에서 우클릭 → 참조 추가 → .NET 탭에서 System.Speech 선택
    • 만약 목록에 없다면, C:\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Speech.dll에서 직접 추가 가능

.NET Core / .NET 5/6 사용 시:

  • System.Speech를 사용할 수 없으므로 대체 라이브러리 필요
  • Microsoft Speech SDK (Azure Cognitive Services Speech SDK)를 활용 가능
  • 설치:
  •  
  •  
    dotnet add package Microsoft.CognitiveServices.Speech
    
  • shell
  • SpeechRecognizer 대신 Speech SDK API를 이용해 음성 인식 구현

어떤 환경인지 확인해보고 적용해보세요! 

 
shell 은 어떻게 여나요

 

Windows에서 Shell을 여는 방법은 여러 가지가 있습니다. 어떤 종류의 쉘을 원하는지에 따라 다른 방법을 사용할 수 있어요. 일반적으로 사용하는 몇 가지 방법을 알려드릴게요:

1. 명령 프롬프트 (cmd) 열기

  • 단축키: Win + R → cmd 입력 → Enter
  • 또는: Win + S에서 "cmd" 검색 후 실행

2. PowerShell 열기

  • 단축키: Win + X → Windows PowerShell 선택
  • 또는: Win + S에서 "powershell" 검색 후 실행

3. Windows 터미널 (Windows Terminal)

  • Windows 10 이상에서는 Windows Terminal을 사용할 수 있음
  • Win + S에서 "Windows Terminal" 검색 후 실행

4. WSL (Windows Subsystem for Linux)

  • 리눅스 명령어를 사용하고 싶다면 WSL을 설치 후 실행 가능
  • cmd 또는 PowerShell에서 wsl 입력하면 리눅스 쉘 실행됨

 

C:\.. dotnet add package Microsoft.CognitiveServices.Speech 입력하니 c:\ .. 에서 프로젝트를 찾을 수 없습니다. 라고 뜨네요

 

그 오류는 현재 명령을 실행 중인 디렉터리에 .NET 프로젝트가 없기 때문이에요. 해결 방법을 알려드릴게요! 😊

🔍 오류 원인

dotnet add package 명령은 현재 폴더에 .NET 프로젝트(.csproj 파일) 가 있어야 실행됩니다. 만약 c:\ 같은 루트 디렉터리에서 실행하면 프로젝트를 찾을 수 없다는 오류가 발생할 수 있어요.

🛠 해결 방법

1. 프로젝트 폴더로 이동하기

  1. 먼저 프로젝트 폴더 확인 솔루션 탐색기에서 .csproj 파일이 있는 폴더 경로를 확인하세요.
  2. 올바른 폴더로 이동 후 실행 예를 들어, 프로젝트 폴더가 C:\Projects\VoiceChatApp이라면 다음을 입력하세요:그리고 다시 패키지 추가 명령을 실행하세요:
  3. shell
    dotnet add package Microsoft.CognitiveServices.Speech
    
  4. shell
    cd C:\Projects\VoiceChatApp
    

2. 프로젝트 생성 후 실행 (프로젝트가 없는 경우)

만약 .csproj 파일이 없다면, 먼저 프로젝트를 생성해야 합니다:

dotnet new winforms -n VoiceChatApp
cd VoiceChatApp
dotnet add package Microsoft.CognitiveServices.Speech

이렇게 하면 프로젝트가 생성되고, 패키지를 정상적으로 추가할 수 있어요.

 

설치한 후에 어떻게 하나요

 

이제 Microsoft.CognitiveServices.Speech 패키지를 설치했으니, 음성 인식을 구현할 수 있어요! 🎤✨

🚀 기본 코드 작성

Azure Cognitive Services Speech SDK를 사용하려면 먼저 구독 키서비스 지역이 필요합니다. Azure Portal에서 Speech 서비스 계정을 생성하고 키를 가져오세요.

1. Speech SDK를 사용하여 음성 인식

아래 코드처럼 SpeechRecognizer를 활용하면 마이크로 입력된 음성을 텍스트로 변환할 수 있습니다:

 
using System;
using System.Threading.Tasks;
using Microsoft.CognitiveServices.Speech;

namespace VoiceChatApp
{
    class Program
    {
        static async Task Main()
        {
            var config = SpeechConfig.FromSubscription("YOUR_SUBSCRIPTION_KEY", "YOUR_REGION");
            using var recognizer = new SpeechRecognizer(config);

            Console.WriteLine("음성을 입력하세요...");
            var result = await recognizer.RecognizeOnceAsync();

            if (result.Reason == ResultReason.RecognizedSpeech)
            {
                Console.WriteLine($"인식된 텍스트: {result.Text}");
            }
            else
            {
                Console.WriteLine("음성 인식 실패!");
            }
        }
    }
}

🚨 주의: "YOUR_SUBSCRIPTION_KEY"와 "YOUR_REGION"을 Azure에서 받은 키 및 지역으로 변경하세요!

2. Windows Forms에 적용하기

  • TextBox에 음성 인식 결과 표시
  • 버튼을 추가하여 음성 인식을 시작
 
private async void StartSpeechRecognition()
{
    var config = SpeechConfig.FromSubscription("YOUR_SUBSCRIPTION_KEY", "YOUR_REGION");
    using var recognizer = new SpeechRecognizer(config);

    var result = await recognizer.RecognizeOnceAsync();
    if (result.Reason == ResultReason.RecognizedSpeech)
    {
        textBoxChat.AppendText($"User: {result.Text}\r\n");
    }
}

3. 실행하기

  1. Azure Speech 서비스에서 키를 받아 입력
  2. 코드를 실행하면 음성이 텍스트로 변환됨

이제 음성 인식 기반 채팅을 구현할 수 있어요! 

 

Azure Cognitive Services Speech SDK 구독키는 유료 인가요?
 

네, Azure Cognitive Services Speech 서비스는 유료 기반이지만, 일부 무료 할당량을 제공하는 무료 체험 플랜이 있습니다.

요금제 개요

  • 무료 체험 플랜:
    • 매월 5시간의 음성 인식 사용 가능 (제한 있음)
    • 일부 기능이 제한될 수 있음
  • 유료 플랜 (사용량 기반 과금)
    • 음성 인식 시간당 비용 청구
    • 실시간 음성 인식, 음성 합성 등 추가 기능 제공
    • Azure 가격 페이지에서 세부 요금 확인 가능

🚀 무료 플랜 활용 방법

  1. Azure 계정 생성 (기존 계정이 없다면)
  2. Speech 서비스 만들기
  3. 무료 체험 플랜 선택 후 키 발급
  4. SDK를 사용하여 음성 인식 구현

무료 할당량으로 간단한 프로젝트를 테스트할 수 있고, 이후 필요에 따라 유료로 확장할 수도 있어요. 😊 추가로 궁금한 점 있으면 알려주세요! 🚀

 
다른 완전 무료 음성 인식기는 없나요
 

완전히 무료로 사용할 수 있는 음성 인식 서비스도 몇 가지 있어요! 🎤✨

무료 음성 인식 서비스

  1. TextFromToSpeech
    • 웹 기반 음성 인식 서비스
    • 마이크를 사용하여 실시간 받아쓰기 가능
    • 별도 설치 없이 브라우저에서 사용 가능
  2. Daglo AI
    • AI 기반 음성 인식 및 텍스트 변환
    • 고유명사 및 전문 용어 등록 가능
    • 다양한 파일 변환 및 공유 기능 제공
  3. Toolify AI
    • 여러 무료 음성 인식 소프트웨어 목록 제공
    • 다양한 AI 기반 음성-텍스트 변환 도구 포함

이 서비스들은 무료로 사용할 수 있지만, 일부 기능은 제한될 수 있어요. 직접 사용해보고 원하는 기능이 있는지 확인해보세요! 🚀 

 

음성을 인식하고 번역하는 방법 AZure 참고

https://learn.microsoft.com/ko-kr/azure/ai-services/speech-service/how-to-translate-speech?tabs=terminal&pivots=programming-language-csharp