음성 인식
Tip
자세한 내용은 텍스트 및 이미지 탭을 참조하세요.
음성 인식(STT)이라고도 하는 음성 인식은 앱과 에이전트가 음성 입력에 응답할 수 있도록 하는 AI 기능입니다. 음성 인식은 음성 단어를 가져와서 데이터(일반적으로 텍스트)로 변환합니다. 음성 텍스트 변환 소프트웨어는 일반적으로 다음을 비롯한 여러 모델을 사용합니다.
- 오디오를 음소(특정 소리의 표현)로 변환하는 음향 모델입니다.
- 음소가 단어에 매핑되는 언어 모델입니다.
AI 음성이 인식하는 단어는 텍스트로 변환됩니다. 선택 자막 제공, 통화 기록 만들기, 메모 받아쓰기 자동화 등 다양한 용도로 텍스트를 사용할 수 있습니다.
Azure Speech - 음성 텍스트 변환
Azure Speech 에는 마이크 또는 오디오 파일에서 음성 입력을 처리하는 데 사용할 수 있는 음성 텍스트 변환 API 가 포함되어 있습니다.
비고
API(애플리케이션 프로그래밍 인터페이스)는 한 소프트웨어 애플리케이션이 다른 애플리케이션의 기능 또는 데이터와 통신하고 사용할 수 있도록 하는 규칙 및 엔드포인트 집합입니다.
Microsoft Foundry 는 개발자가 모델, 도구, 데이터 및 서비스를 한 곳에 통합하여 AI 애플리케이션 및 에이전트를 빌드, 테스트 및 배포하는 데 도움이 되는 Microsoft 플랫폼입니다.
새 Microsoft Foundry 포털에서 Foundry 플레이그라운드에서 Azure Speech의 음성 텍스트 변환 기능을 살펴볼 수 있습니다. 플레이그라운드로 이동하려면 빌드 페이지로 이동한 다음 , 모델로 이동한 다음 , AI 서비스 탭으로 이동합니다. 탭에서 Azure Speech - Speech to Text를 포함하여 테스트에 사용할 수 있는 다양한 AI 서비스를 찾을 수 있습니다.
놀이터에서 오디오 파일을 업로드하거나 직접 말하기를 녹음할 수 있습니다. Azure Speech는 음성을 전사하여 사용자 고유의 애플리케이션이 오디오 입력에 어떻게 응답할지 미리 느낄 수 있도록 합니다.
Foundry 포털의 플레이그라운드는 Azure Speech를 실험하기에 좋은 장소이지만 애플리케이션에서 음성 텍스트 변환을 사용하려면 코드를 작성해야 합니다.
Azure 음성 텍스트 변환 SDK 사용
Azure Speech – Speech-to-Text SDK는 애플리케이션이 음성 오디오를 쓰기 텍스트로 변환할 수 있는 클라이언트 라이브러리입니다. 음성 텍스트 변환 SDK는 음성 인식을 애플리케이션에 쉽게 추가할 수 있도록 설계되었습니다.
비고
클라이언트 라이브러리는 개발자가 애플리케이션에서 서비스 또는 API와 쉽게 통신하는 데 사용할 수 있는 미리 만들어진 코드 집합입니다.
SDK를 사용하면 애플리케이션에서 다음을 수행할 수 있습니다.
- 마이크, 오디오 파일 또는 오디오 스트림에서 오디오 캡처 또는 보내기
- 해당 오디오를 Azure Speech에 안전하게 보내기
- 거의 실시간으로 또는 처리가 완료된 후 전사된 텍스트 받기
SDK는 네트워킹, 인증, 오디오 스트리밍 및 응답 구문 분석을 처리하므로 개발자는 애플리케이션 논리에 집중할 수 있습니다.
애플리케이션 개발
Speech-to-Text SDK는 일반적으로 애플리케이션의 클라이언트 또는 서비스 계층에서 사용됩니다. SDK는 애플리케이션 코드와 Azure Speech Service 간의 브리지 역할을 합니다.
Azure Speech Python SDK를 사용하려면 호환되는 버전의 Python 및 Azure Speech Python SDK가 설치되어 있어야 합니다.
Python SDK는 다음을 사용하여 Visual Studio Code 터미널 에 설치할 수 있습니다.
pip install azure-cognitiveservices-speech
비고
애플리케이션 코드는 Visual Studio Code 와 같은 코드 편집기에서 작성됩니다. 코드 편집기 터미널 은 개발 환경을 벗어나지 않고 명령을 실행할 수 있는 편집기 내의 기본 제공 명령줄 창입니다.
Azure Speech를 사용하려면 Foundry 리소스도 만들어야 합니다. Foundry 리소스 엔드포인트 및 키는 코드에서 연결을 인증하는 데 사용됩니다.
Python SDK를 설치하고 Foundry 리소스를 만든 후 프로그램을 만들고 실행할 수 있습니다. 다음 Python 코드를 고려합니다. 실행할 때:
- 앱이 Speech SDK를 초기화합니다. 엔드포인트 및 인증(키 또는 Microsoft Entra ID)을 제공합니다.
- 오디오 캡처 또는 로드: 마이크 입력 또는 오디오 파일/스트림
- 오디오가 Azure Speech로 전송됨: SDK는 오디오를 안전하게 스트리밍하거나 업로드합니다.
- 클라우드에서 음성 인식 실행: Azure의 음성 모델에서 오디오 분석
- 텍스트 결과가 반환됩니다. 앱에서 인식된 텍스트 및 선택적 메타데이터를 받습니다.
import azure.cognitiveservices.speech as speechsdk
# Set up the speech config using resource endpoint
endpoint_url = "ENDPOINT"
speech_key = "FOUNDRY_KEY"
speech_config = speechsdk.SpeechConfig(
subscription=speech_key,
endpoint=endpoint_url
)
# Create a recognizer with microphone input
audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config,
audio_config=audio_config
)
# Event handlers
def recognized_handler(evt):
print(f"Recognized: {evt.result.text}")
def recognizing_handler(evt):
print(f"Recognizing: {evt.result.text}")
# Connect event handlers
speech_recognizer.recognized.connect(recognized_handler)
speech_recognizer.recognizing.connect(recognizing_handler)
# Start continuous recognition
speech_recognizer.start_continuous_recognition()
print("Say something...")
# Keep the program running
input("Press Enter to stop...")
speech_recognizer.stop_continuous_recognition()
클라이언트 앱 예제
예를 들어 음성 메일 메시지를 자동으로 전사하는 간단한 앱을 개발한다고 가정해 보겠습니다. 코드 편집기에서 오디오 파일 1개와 애플리케이션 코드가 포함된 Python 파일이 하나 있습니다.
음성 메일 녹음이 포함된 오디오 파일이 있다고 가정해 보겠습니다. 메시지를 기록하려면 먼저 엔드포인트 및 키와 기록하려는 오디오 원본을 지정합니다. 그런 후 결과를 표시하기 전에 SpeechRecognizer 객체를 사용하여 트랜스크립션을 수행합니다.
코드를 실행하면 전사 텍스트를 볼 수 있습니다.
오디오 처리 옵션
Azure Speech의 음성 텍스트 변환 API를 사용하여 오디오의 실시간 또는 일괄 처리 전사를 텍스트 형식으로 수행할 수 있습니다. 전사용 오디오 소스는 마이크 또는 오디오 파일에서 나오는 실시간 오디오 스트림일 수 있습니다.
실시간 전사: 실시간 음성 텍스트 변환을 사용하면 오디오 스트림을 텍스트로 전사할 수 있습니다. 프레젠테이션, 데모 또는 사람이 말하는 다른 모든 시나리오에 실시간 전사를 사용할 수 있습니다.
실시간 대화 내용 기록이 작동하려면 마이크에서 수신 오디오 또는 오디오 파일과 같은 다른 오디오 입력 원본을 애플리케이션에서 수신 대기할 수 있어야 합니다. 애플리케이션 코드는 오디오를 서비스로 스트리밍하여 전사된 텍스트를 반환합니다.
일괄 대화 내용 기록: 모든 음성 텍스트 변환 시나리오가 실시간인 것은 아닙니다. 파일 공유, 원격 서버 또는 Azure Storage에 오디오 녹음이 저장되어 있을 수 있습니다. SAS(공유 액세스 서명) URI가 있는 오디오 파일을 가리키고 비동기적으로 전사 결과를 받을 수 있습니다.
일괄 작업이 ‘최선의 노력 기준’으로 예약되므로 전사 일괄 처리는 비동기 방식으로 실행해야 합니다. 일반적으로 작업은 요청 후 몇 분 이내에 실행을 시작하지만 작업이 실행 상태로 전환되는 시점에 대한 예상은 없습니다.
Azure Speech의 음성 인식은 녹음된 오디오를 전사하거나 음성 캡션을 자동화하는 솔루션을 빌드하는 좋은 방법입니다. 다음으로, 음성 합성을 애플리케이션에 통합하는 방법을 알아봅니다.