다음을 통해 공유


음성 및 오디오용 GPT-4o 실시간 API(미리 보기)

참고 항목

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

음성 및 오디오용 Azure OpenAI GPT-4o 실시간 API는 짧은 대기 시간, "음성 출력, 음성 출력" 대화형 상호 작용을 지원하는 GPT-4o 모델 제품군의 일부입니다. GPT-4o 오디오 realtime API는 실시간 대기 시간이 짧은 대화형 상호 작용을 처리하도록 설계되어 사용자와 모델 간의 실시간 상호 작용(예: 고객 지원 에이전트, 음성 도우미 및 실시간 번역기)과 관련된 사용 사례에 적합합니다.

대부분의 Realtime API 사용자는 WebRTC 또는 전화 통신 시스템을 사용하는 애플리케이션을 포함하여 최종 사용자로부터 실시간으로 오디오를 전달하고 받아야 합니다. 실시간 API는 최종 사용자 디바이스에 직접 연결하도록 설계되지 않았으며 클라이언트 통합을 사용하여 최종 사용자 오디오 스트림을 종료합니다.

지원되는 모델

현재 버전만 gpt-4o-realtime-preview : 2024-10-01-preview 실시간 오디오를 지원합니다.

gpt-4o-realtime-preview 모델은 미국 동부 2 및 스웨덴 중부 지역의 글로벌 배포에 사용할 수 있습니다.

Important

시스템은 제한된 예외가 적용되지 않는다는 점을 제외하고 Azure OpenAI 서비스에 대한 서비스별 제품 약관의 "남용 모니터링에 대한 데이터 사용 및 액세스" 섹션에 설명된 대로 프롬프트 및 완료를 저장합니다. 수정된 남용 모니터링에 대해 승인된 고객에게도 API 사용을 gpt-4o-realtime-preview 위해 남용 모니터링이 설정됩니다.

API 지원

실시간 API에 대한 지원은 API 버전 2024-10-01-preview에서 처음 추가되었습니다.

참고 항목

API 및 아키텍처에 대한 자세한 내용은 GitHubAzure OpenAI GPT-4o 실시간 오디오 리포지토리를 참조하세요.

실시간 오디오를 위한 모델 배포

Azure AI Foundry 포털에서 모델을 배포 gpt-4o-realtime-preview 하려면 다음을 수행합니다.

  1. Azure AI Foundry 포털로 이동하여 모델 배포 여부에 관계없이 Azure OpenAI Service 리소스가 있는 Azure 구독으로 로그인했는지 확인합니다.
  2. 왼쪽 창의 플레이그라운드 아래에서 실시간 오디오 플레이그라운드를 선택합니다.
  3. 새 배포 만들기를 선택하여 배포 창을 엽니다.
  4. 모델을 검색하여 선택한 gpt-4o-realtime-preview 다음 확인을 선택합니다.
  5. 배포 마법사에서 모델 버전을 선택 2024-10-01 해야 합니다.
  6. 마법사에 따라 모델 배포를 완료합니다.

이제 모델을 배포 gpt-4o-realtime-preview 했으므로 Azure AI Foundry 포털 실시간 오디오 플레이그라운드 또는 실시간 API에서 실시간으로 상호 작용할 수 있습니다.

GPT-4o 실시간 오디오 사용

Azure AI Foundry 실시간 오디오 플레이그라운드에서 배포된 gpt-4o-realtime-preview 모델과 채팅하려면 다음 단계를 수행합니다.

  1. Azure AI Foundry 포털의 Azure OpenAI 서비스 페이지 로 이동합니다. Azure OpenAI 서비스 리소스 및 배포된 모델이 있는 Azure 구독으로 로그인했는지 gpt-4o-realtime-preview 확인합니다.

  2. 왼쪽 창의 플레이그라운드 아래에서 실시간 오디오 플레이그라운드를 선택합니다.

  3. 배포 드롭다운에서 배포된 gpt-4o-realtime-preview 모델을 선택합니다.

  4. 브라우저에서 마이크에 액세스할 수 있도록 마이크 사용을 선택합니다. 이미 사용 권한을 부여한 경우 이 단계를 건너뛸 수 있습니다.

    배포된 모델이 선택된 실시간 오디오 플레이그라운드의 스크린샷

  5. 필요에 따라 모델 지침 및 컨텍스트 입력란의 내용을 편집할 수 있습니다. 응답을 생성할 때 참조해야 하는 컨텍스트와 작동 방식에 대한 지침을 모델에 제공합니다. 도우미의 성격을 설명하고, 대답해야 하는 것과 대답해서는 안 되는 것을 말하고, 응답의 형식을 지정하는 방법을 말할 수 있습니다.

  6. 필요에 따라 임계값, 접두사 안쪽 여백 및 무음 기간과 같은 설정을 변경합니다.

  7. 수신 대기 시작을 선택하여 세션을 시작합니다. 마이크로 대화하여 채팅을 시작할 수 있습니다.

    수신 시작 단추 및 마이크 액세스를 사용하도록 설정된 실시간 오디오 플레이그라운드의 스크린샷.

  8. 언제든지 말하기를 통해 채팅을 중단할 수 있습니다. 수신 중지 단추를 선택하여 채팅을 종료할 수 있습니다 .

필수 조건

Microsoft Entra ID 필수 구성 요소

Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.

실시간 오디오를 위한 모델 배포

Azure AI Foundry 포털에서 모델을 배포 gpt-4o-realtime-preview 하려면 다음을 수행합니다.

  1. Azure AI Foundry 포털로 이동하여 모델 배포 여부에 관계없이 Azure OpenAI Service 리소스가 있는 Azure 구독으로 로그인했는지 확인합니다.
  2. 왼쪽 창의 플레이그라운드 아래에서 실시간 오디오 플레이그라운드를 선택합니다.
  3. 새 배포 만들기를 선택하여 배포 창을 엽니다.
  4. 모델을 검색하여 선택한 gpt-4o-realtime-preview 다음 확인을 선택합니다.
  5. 배포 마법사에서 모델 버전을 선택 2024-10-01 해야 합니다.
  6. 마법사에 따라 모델 배포를 완료합니다.

이제 모델을 배포 gpt-4o-realtime-preview 했으므로 Azure AI Foundry 포털 실시간 오디오 플레이그라운드 또는 실시간 API에서 실시간으로 상호 작용할 수 있습니다.

설정

  1. 애플리케이션을 포함할 새 폴더 realtime-audio-quickstart 를 만들고 다음 명령을 사용하여 해당 폴더에서 Visual Studio Code를 엽니다.

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. 다음 명령을 사용하여 package.json 만듭니다.

    npm init -y
    
  3. package.json 다음 명령을 사용하여 ECMAScript로 업데이트합니다.

    npm pkg set type=module
    
  4. 다음을 사용하여 JavaScript용 실시간 오디오 클라이언트 라이브러리를 설치합니다.

    npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
    
  5. Microsoft Entra ID로 권장되는 키 없는 인증의 경우 다음을 사용하여 @azure/identity 패키지를 설치합니다.

    npm install @azure/identity
    

리소스 정보 검색

변수 이름
AZURE_OPENAI_ENDPOINT 이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
AZURE_OPENAI_DEPLOYMENT_NAME 이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>모델 배포에서 찾을 수 있습니다.
OPENAI_API_VERSION API 버전에 대해 자세히 알아봅니다.

키 없는 인증 및 환경 변수 설정에 대해 자세히 알아봅니다.

주의

SDK에서 권장되는 키 없는 인증을 사용하려면 환경 변수가 AZURE_OPENAI_API_KEY 설정되지 않았는지 확인합니다.

오디오 출력의 텍스트

  1. 다음 코드를 사용하여 text-in-audio-out.js 파일을 만듭니다.

    import { DefaultAzureCredential } from "@azure/identity";
    import { LowLevelRTClient } from "rt-client";
    import dotenv from "dotenv";
    dotenv.config();
    async function text_in_audio_out() {
        // Set environment variables or edit the corresponding values here.
        const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "yourEndpoint";
        const deployment = "gpt-4o-realtime-preview";
        if (!endpoint || !deployment) {
            throw new Error("You didn't set the environment variables.");
        }
        const client = new LowLevelRTClient(new URL(endpoint), new DefaultAzureCredential(), { deployment: deployment });
        try {
            await client.send({
                type: "response.create",
                response: {
                    modalities: ["audio", "text"],
                    instructions: "Please assist the user."
                }
            });
            for await (const message of client.messages()) {
                switch (message.type) {
                    case "response.done": {
                        break;
                    }
                    case "error": {
                        console.error(message.error);
                        break;
                    }
                    case "response.audio_transcript.delta": {
                        console.log(`Received text delta: ${message.delta}`);
                        break;
                    }
                    case "response.audio.delta": {
                        const buffer = Buffer.from(message.delta, "base64");
                        console.log(`Received ${buffer.length} bytes of audio data.`);
                        break;
                    }
                }
                if (message.type === "response.done" || message.type === "error") {
                    break;
                }
            }
        }
        finally {
            client.close();
        }
    }
    await text_in_audio_out();
    
  2. 다음 명령을 사용하여 Azure에 로그인합니다.

    az login
    
  3. JavaScript 파일을 실행합니다.

    node text-in-audio-out.js
    

응답을 얻기 위해 잠시 기다립니다.

출력

스크립트는 모델에서 응답을 가져오고 받은 대본 및 오디오 데이터를 출력합니다.

출력은 다음과 비슷합니다.

Received text delta: Hello
Received text delta: !
Received text delta:  How
Received text delta:  can
Received text delta:  I
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta:  help
Received 12000 bytes of audio data.
Received text delta:  you
Received text delta:  today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 24000 bytes of audio data.

웹 애플리케이션 샘플

GitHub의 JavaScript 웹 샘플에서는 GPT-4o 실시간 API를 사용하여 모델과 실시간으로 상호 작용하는 방법을 보여 줍니다. 샘플 코드에는 사용자의 마이크에서 오디오를 캡처하고 처리를 위해 모델로 보내는 간단한 웹 인터페이스가 포함되어 있습니다. 모델은 샘플 코드가 웹 인터페이스에서 렌더링하는 텍스트 및 오디오로 응답합니다.

다음 단계에 따라 컴퓨터에서 로컬로 샘플 코드를 실행할 수 있습니다. 최신 지침은 GitHub 의 리포지토리를 참조하세요.

  1. Node.js 설치되지 않은 경우 LTS 버전의 Node.js 다운로드하여 설치합니다.

  2. 리포지토리를 로컬 컴퓨터에 복제합니다.

    git clone https://github.com/Azure-Samples/aoai-realtime-audio-sdk.git
    
  3. 기본 코드 편집기 javascript/samples/web 에서 폴더로 이동합니다.

    cd ./javascript/samples
    
  4. 필요한 패키지를 실행 download-pkg.ps1 하거나 download-pkg.sh 다운로드합니다.

  5. 폴더에서 web 폴더로 ./javascript/samples 이동합니다.

    cd ./web
    
  6. 실행 npm install 하여 패키지 종속성을 설치합니다.

  7. 웹 서버를 시작하려면 실행 npm run dev 하여 필요에 따라 방화벽 사용 권한 프롬프트를 탐색합니다.

  8. 브라우저의 콘솔 출력(예: http://localhost:5173/)에서 제공된 URI 중 하나로 이동합니다.

  9. 웹 인터페이스에 다음 정보를 입력합니다.

    • 엔드포인트: Azure OpenAI 리소스의 리소스 엔드포인트입니다. 경로를 추가할 /realtime 필요가 없습니다. 예를 들어 구조체는 다음과 같습니다 https://my-azure-openai-resource-from-portal.openai.azure.com.
    • API 키: Azure OpenAI 리소스에 해당하는 API 키입니다.
    • 배포: 이전 섹션에서 배포한 모델의 이름 gpt-4o-realtime-preview 입니다.
    • 시스템 메시지: 필요에 따라 "항상 친숙한 해적처럼 이야기한다"와 같은 시스템 메시지를 제공할 수 있습니다.
    • 온도: 필요에 따라 사용자 지정 온도를 제공할 수 있습니다.
    • 음성: 필요에 따라 음성을 선택할 수 있습니다.
  10. 레코드 단추를 선택하여 세션을 시작합니다. 메시지가 표시되면 마이크를 사용할 수 있는 권한을 수락합니다.

  11. 기본 출력에 << Session Started >> 메시지가 표시됩니다. 그런 다음 마이크로 대화하여 채팅을 시작할 수 있습니다.

  12. 언제든지 말하기를 통해 채팅을 중단할 수 있습니다. 중지 단추를 선택하여 채팅을 종료할 수 있습니다.

필수 구성 요소

Microsoft Entra ID 필수 구성 요소

Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.

실시간 오디오를 위한 모델 배포

Azure AI Foundry 포털에서 모델을 배포 gpt-4o-realtime-preview 하려면 다음을 수행합니다.

  1. Azure AI Foundry 포털로 이동하여 모델 배포 여부에 관계없이 Azure OpenAI Service 리소스가 있는 Azure 구독으로 로그인했는지 확인합니다.
  2. 왼쪽 창의 플레이그라운드 아래에서 실시간 오디오 플레이그라운드를 선택합니다.
  3. 새 배포 만들기를 선택하여 배포 창을 엽니다.
  4. 모델을 검색하여 선택한 gpt-4o-realtime-preview 다음 확인을 선택합니다.
  5. 배포 마법사에서 모델 버전을 선택 2024-10-01 해야 합니다.
  6. 마법사에 따라 모델 배포를 완료합니다.

이제 모델을 배포 gpt-4o-realtime-preview 했으므로 Azure AI Foundry 포털 실시간 오디오 플레이그라운드 또는 실시간 API에서 실시간으로 상호 작용할 수 있습니다.

설정

  1. 애플리케이션을 포함할 새 폴더 realtime-audio-quickstart 를 만들고 다음 명령을 사용하여 해당 폴더에서 Visual Studio Code를 엽니다.

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. 가상 환경을 만듭니다. 이미 Python 3.10 이상이 설치되어 있는 경우 다음 명령을 사용하여 가상 환경을 만들 수 있습니다.

    py -3 -m venv .venv
    .venv\scripts\activate
    

    Python 환경을 활성화한다는 것은 명령줄에서 python 또는 pip를 실행할 때 애플리케이션의 .venv 폴더에 포함된 Python 인터프리터를 사용하게 된다는 의미입니다. deactivate 명령을 사용하여 Python 가상 환경을 종료하고 나중에 필요할 때 다시 활성화할 수 있습니다.

    이 자습서에 필요한 패키지를 설치하는 데 사용할 새 Python 환경을 만들고 활성화하는 것이 좋습니다. 글로벌 Python 설치에 패키지를 설치하지 마세요. Python 패키지를 설치할 때 항상 가상 또는 conda 환경을 사용해야 합니다. 그렇지 않으면 Python의 전역 설치를 중단시킬 수 있습니다.

  3. 다음을 사용하여 Python용 실시간 오디오 클라이언트 라이브러리를 설치합니다.

    pip install "https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/py%2Fv0.5.3/rtclient-0.5.3.tar.gz"
    
  4. Microsoft Entra ID로 권장되는 키 없는 인증의 경우 다음을 사용하여 azure-identity 패키지를 설치합니다.

    pip install azure-identity
    

리소스 정보 검색

변수 이름
AZURE_OPENAI_ENDPOINT 이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
AZURE_OPENAI_DEPLOYMENT_NAME 이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>모델 배포에서 찾을 수 있습니다.
OPENAI_API_VERSION API 버전에 대해 자세히 알아봅니다.

키 없는 인증 및 환경 변수 설정에 대해 자세히 알아봅니다.

오디오 출력의 텍스트

  1. 다음 코드를 사용하여 text-in-audio-out.py 파일을 만듭니다.

    import base64
    import asyncio
    from azure.identity.aio import DefaultAzureCredential
    from rtclient import (
        ResponseCreateMessage,
        RTLowLevelClient,
        ResponseCreateParams
    )
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]
    deployment = "gpt-4o-realtime-preview"
    
    async def text_in_audio_out():
        async with RTLowLevelClient(
            url=endpoint,
            azure_deployment=deployment,
            token_credential=DefaultAzureCredential(),
        ) as client:
            await client.send(
                ResponseCreateMessage(
                    response=ResponseCreateParams(
                        modalities={"audio", "text"}, 
                        instructions="Please assist the user."
                    )
                )
            )
            done = False
            while not done:
                message = await client.recv()
                match message.type:
                    case "response.done":
                        done = True
                    case "error":
                        done = True
                        print(message.error)
                    case "response.audio_transcript.delta":
                        print(f"Received text delta: {message.delta}")
                    case "response.audio.delta":
                        buffer = base64.b64decode(message.delta)
                        print(f"Received {len(buffer)} bytes of audio data.")
                    case _:
                        pass
    
    async def main():
        await text_in_audio_out()
    
    asyncio.run(main())
    
  2. Python 파일을 실행합니다.

    python text-in-audio-out.py
    

응답을 얻기 위해 잠시 기다립니다.

출력

스크립트는 모델에서 응답을 가져오고 받은 대본 및 오디오 데이터를 출력합니다.

출력은 다음과 비슷합니다.

Received text delta: Hello
Received text delta: !
Received text delta:  How
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta:  can
Received 12000 bytes of audio data.
Received text delta:  I
Received text delta:  assist
Received text delta:  you
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received text delta:  today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 28800 bytes of audio data.

필수 조건

Microsoft Entra ID 필수 구성 요소

Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.

실시간 오디오를 위한 모델 배포

Azure AI Foundry 포털에서 모델을 배포 gpt-4o-realtime-preview 하려면 다음을 수행합니다.

  1. Azure AI Foundry 포털로 이동하여 모델 배포 여부에 관계없이 Azure OpenAI Service 리소스가 있는 Azure 구독으로 로그인했는지 확인합니다.
  2. 왼쪽 창의 플레이그라운드 아래에서 실시간 오디오 플레이그라운드를 선택합니다.
  3. 새 배포 만들기를 선택하여 배포 창을 엽니다.
  4. 모델을 검색하여 선택한 gpt-4o-realtime-preview 다음 확인을 선택합니다.
  5. 배포 마법사에서 모델 버전을 선택 2024-10-01 해야 합니다.
  6. 마법사에 따라 모델 배포를 완료합니다.

이제 모델을 배포 gpt-4o-realtime-preview 했으므로 Azure AI Foundry 포털 실시간 오디오 플레이그라운드 또는 실시간 API에서 실시간으로 상호 작용할 수 있습니다.

설정

  1. 애플리케이션을 포함할 새 폴더 realtime-audio-quickstart 를 만들고 다음 명령을 사용하여 해당 폴더에서 Visual Studio Code를 엽니다.

    mkdir realtime-audio-quickstart && code realtime-audio-quickstart
    
  2. 다음 명령을 사용하여 package.json 만듭니다.

    npm init -y
    
  3. package.json 다음 명령을 사용하여 ECMAScript로 업데이트합니다.

    npm pkg set type=module
    
  4. 다음을 사용하여 JavaScript용 실시간 오디오 클라이언트 라이브러리를 설치합니다.

    npm install https://github.com/Azure-Samples/aoai-realtime-audio-sdk/releases/download/js/v0.5.2/rt-client-0.5.2.tgz
    
  5. Microsoft Entra ID로 권장되는 키 없는 인증의 경우 다음을 사용하여 @azure/identity 패키지를 설치합니다.

    npm install @azure/identity
    

리소스 정보 검색

변수 이름
AZURE_OPENAI_ENDPOINT 이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
AZURE_OPENAI_DEPLOYMENT_NAME 이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>모델 배포에서 찾을 수 있습니다.
OPENAI_API_VERSION API 버전에 대해 자세히 알아봅니다.

키 없는 인증 및 환경 변수 설정에 대해 자세히 알아봅니다.

주의

SDK에서 권장되는 키 없는 인증을 사용하려면 환경 변수가 AZURE_OPENAI_API_KEY 설정되지 않았는지 확인합니다.

오디오 출력의 텍스트

  1. 다음 코드를 사용하여 text-in-audio-out.ts 파일을 만듭니다.

    import { DefaultAzureCredential } from "@azure/identity";
    import { LowLevelRTClient } from "rt-client";
    import dotenv from "dotenv";
    dotenv.config();
    
    async function text_in_audio_out() {
        // Set environment variables or edit the corresponding values here.
        const endpoint: string = process.env["AZURE_OPENAI_ENDPOINT"] || "yourEndpoint";
        const deployment = "gpt-4o-realtime-preview";
        if (!endpoint || !deployment) {
            throw new Error("You didn't set the environment variables.");
        }
        const client = new LowLevelRTClient(
            new URL(endpoint), 
            new DefaultAzureCredential(), 
            {deployment: deployment}
        );
        try {
            await client.send({
                type: "response.create",
                response: {
                    modalities: ["audio", "text"],
                    instructions: "Please assist the user."
                }
            });
    
            for await (const message of client.messages()) {
                switch (message.type) {
                    case "response.done": {
                        break;
                    }
                    case "error": {
                        console.error(message.error);
                        break;
                    }
                    case "response.audio_transcript.delta": {
                        console.log(`Received text delta: ${message.delta}`);
                        break;
                    }
                    case "response.audio.delta": {
                        const buffer = Buffer.from(message.delta, "base64");
                        console.log(`Received ${buffer.length} bytes of audio data.`);
                        break;
                    }
                }
                if (message.type === "response.done" || message.type === "error") {
                    break;
                }
            }
        } finally {
            client.close();
        }
    }
    
    await text_in_audio_out();
    
  2. tsconfig.json TypeScript 코드를 변환하고 ECMAScript에 대해 다음 코드를 복사하는 파일을 만듭니다.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. TypeScript에서 JavaScript로 변환합니다.

    tsc
    
  4. 다음 명령을 사용하여 Azure에 로그인합니다.

    az login
    
  5. 다음 명령을 사용하여 코드를 실행합니다.

    node text-in-audio-out.js
    

응답을 얻기 위해 잠시 기다립니다.

출력

스크립트는 모델에서 응답을 가져오고 받은 대본 및 오디오 데이터를 출력합니다.

출력은 다음과 비슷합니다.

Received text delta: Hello
Received text delta: !
Received text delta:  How
Received text delta:  can
Received text delta:  I
Received 4800 bytes of audio data.
Received 7200 bytes of audio data.
Received text delta:  help
Received 12000 bytes of audio data.
Received text delta:  you
Received text delta:  today
Received text delta: ?
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 12000 bytes of audio data.
Received 24000 bytes of audio data.