สํารวจ Azure Voice Live API

เสร็จสมบูรณ์เมื่อ

เคล็ดลับ

ดูแท็บ ข้อความและรูปภาพ สําหรับรายละเอียดเพิ่มเติม!

Voice live API ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่เปิดใช้งานเสียงด้วยการสื่อสารแบบสองทิศทางแบบเรียลไทม์ หน่วยนี้สํารวจสถาปัตยกรรม การกําหนดค่า และการใช้งาน

คุณสมบัติหลักของ Voice Live API

Voice live API ให้การสื่อสารแบบเรียลไทม์โดยใช้การเชื่อมต่อ WebSocket รองรับคุณสมบัติขั้นสูง เช่น การรู้จําเสียง การสังเคราะห์ข้อความเป็นคําพูด การสตรีมอวาตาร์ และการประมวลผลเสียง

  • เหตุการณ์ในรูปแบบ JSON จะจัดการการสนทนา สตรีมเสียง และการตอบกลับ
  • เหตุการณ์จะแบ่งออกเป็นเหตุการณ์ไคลเอ็นต์ (ส่งจากไคลเอ็นต์ไปยังเซิร์ฟเวอร์) และเหตุการณ์ของเซิร์ฟเวอร์ (ส่งจากเซิร์ฟเวอร์ไปยังไคลเอ็นต์)

คุณลักษณะที่สำคัญต่างๆ รวมถึง:

  • การประมวลผลเสียงแบบเรียลไทม์พร้อมรองรับหลายรูปแบบ เช่น PCM16 และ G.711
  • ตัวเลือกเสียงขั้นสูง รวมถึงเสียง OpenAI และเสียงแบบกําหนดเองของ Azure
  • การรวมอวาตาร์โดยใช้ WebRTC สําหรับวิดีโอและแอนิเมชั่น
  • การลดเสียงรบกวนและการตัดเสียงสะท้อนในตัว

Note

Voice Live API ได้รับการปรับให้เหมาะสมสําหรับทรัพยากร Microsoft Foundry เราขอแนะนําให้ใช้ทรัพยากร Microsoft Foundry เพื่อความพร้อมใช้งานของฟีเจอร์เต็มรูปแบบและประสบการณ์การรวม Microsoft Foundry ที่ดีที่สุด

โปรดดูตารางรุ่นและภูมิภาคที่รองรับที่ภาพรวมของ Voice Live API

เชื่อมต่อกับ Voice Live API

Voice live API รองรับวิธีการรับรองความถูกต้องสองวิธี ได้แก่ Microsoft Entra (แบบไม่ใช้กุญแจ) และคีย์ API Microsoft Entra ใช้การรับรองความถูกต้องตามโทเค็นสําหรับทรัพยากร Microsoft Foundry คุณใช้โทเค็นการรับรองความถูกต้องที่ดึงมาโดยใช้ Bearer โทเค็นที่มี Authorization ส่วนหัว

สําหรับการรับรองความถูกต้องแบบไม่ใช้กุญแจที่แนะนําด้วย Microsoft Entra ID คุณต้องกําหนดบทบาท ผู้ใช้ Cognitive Services ให้กับบัญชีผู้ใช้ของคุณหรือข้อมูลประจําตัวที่มีการจัดการ คุณสร้างโทเค็นโดยใช้ Azure CLI หรือ Azure SDK โทเค็นต้องถูกสร้างขึ้นด้วยhttps://ai.azure.com/.defaultขอบเขตหรือขอบเขตดั้งเดิมhttps://cognitiveservices.azure.com/.default ใช้โทเค็นในส่วนAuthorizationหัวของคําขอการเชื่อมต่อ WebSocket ด้วยรูปแบบBearer <token>

สําหรับการเข้าถึงคีย์ คุณสามารถระบุคีย์ API ได้ด้วยวิธีใดวิธีหนึ่งจากสองวิธี คุณสามารถใช้ส่วนหัวของ api-key การเชื่อมต่อบนการเชื่อมต่อก่อนการจับมือ ตัวเลือกนี้ไม่พร้อมใช้งานในสภาพแวดล้อมของเบราว์เซอร์ หรือคุณสามารถใช้ api-key พารามิเตอร์สตริงคิวรีบน URI คําขอ พารามิเตอร์สตริงคิวรีจะถูกเข้ารหัสเมื่อใช้ https/wss

Note

api-keyส่วนหัวของการเชื่อมต่อในการเชื่อมต่อก่อนการจับมือไม่พร้อมใช้งานในสภาพแวดล้อมของเบราว์เซอร์

ตําแหน่งข้อมูล WebSocket

ปลายทางที่จะใช้จะแตกต่างกันไปขึ้นอยู่กับวิธีที่คุณต้องการเข้าถึงทรัพยากรของคุณ คุณสามารถเข้าถึงทรัพยากรผ่านการเชื่อมต่อกับโครงการ Foundry เมื่อใช้ตัวแทน หรือผ่านการเชื่อมต่อโดยตรงกับแบบจําลอง

  • การเชื่อมต่อโครงการ: จุดสิ้นสุดคือ wss://<your-ai-foundry-resource-name>.services.ai.azure.com/voice-live/realtime?api-version=2025-10-01
  • การเชื่อมต่อรุ่น: จุดสิ้นสุดคือ wss://<your-ai-foundry-resource-name>.cognitiveservices.azure.com/voice-live/realtime?api-version=2025-10-01.

จุดสิ้นสุดจะเหมือนกันสําหรับทุกรุ่น ข้อแตกต่างเพียงอย่างเดียวคือพารามิเตอร์คิวรีที่จําเป็น model หรือเมื่อใช้บริการเอเจนต์ พารามิเตอร์ และagent_idproject_id

เหตุการณ์ Voice Live API

เหตุการณ์ของไคลเอ็นต์และเซิร์ฟเวอร์ช่วยอํานวยความสะดวกในการสื่อสารและการควบคุมภายใน Voice live API เหตุการณ์สําคัญของลูกค้า ได้แก่ :

  • session.update: แก้ไขการกําหนดค่าเซสชัน
  • input_audio_buffer.append: เพิ่มข้อมูลเสียงลงในบัฟเฟอร์
  • response.create: สร้างการตอบสนองผ่านการอนุมานแบบจําลอง

เหตุการณ์บนเซิร์ฟเวอร์จะให้คําติชมและการอัปเดตสถานะ

  • session.updated: ยืนยันการเปลี่ยนแปลงการกําหนดค่าเซสชัน
  • response.done: ระบุการสร้างการตอบกลับเสร็จสมบูรณ์
  • conversation.item.created: แจ้งเตือนเมื่อมีการเพิ่มรายการการสนทนาใหม่

ดูรายการเหตุการณ์ทั้งหมดของไคลเอ็นต์/เซิร์ฟเวอร์ได้ที่ข้อมูลอ้างอิง Voice live API

Note

การจัดการเหตุการณ์อย่างเหมาะสมช่วยให้มั่นใจได้ถึงปฏิสัมพันธ์ที่ราบรื่นระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

กําหนดการตั้งค่าเซสชันสําหรับ Voice live API

บ่อยครั้งที่เหตุการณ์แรกที่ส่งโดยผู้โทรในเซสชัน Voice live API ที่สร้างขึ้นใหม่คือ session.update เหตุการณ์ เหตุการณ์นี้ควบคุมชุดพฤติกรรมอินพุตและเอาต์พุตที่หลากหลาย การตั้งค่าเซสชันสามารถอัปเดตแบบไดนามิกได้โดยใช้ session.update เหตุการณ์ นักพัฒนาสามารถกําหนดค่าประเภทเสียง รูปแบบ การตรวจจับการเลี้ยว และรูปแบบเสียงได้

ตัวอย่างการกําหนดค่า:

{
  "type": "session.update",
  "session": {
    "modalities": ["text", "audio"],
    "voice": {
      "type": "openai",
      "name": "alloy"
    },
    "instructions": "You are a helpful assistant. Be concise and friendly.",
    "input_audio_format": "pcm16",
    "output_audio_format": "pcm16",
    "input_audio_sampling_rate": 24000,
    "turn_detection": {
      "type": "azure_semantic_vad",
      "threshold": 0.5,
      "prefix_padding_ms": 300,
      "silence_duration_ms": 500
    },
    "temperature": 0.8,
    "max_response_output_tokens": "inf"
  }
}

เคล็ดลับ

ใช้ Azure Semantic VAD สําหรับการตรวจจับการเลี้ยวอัจฉริยะและโฟลว์การสนทนาที่ได้รับการปรับปรุง

ใช้การประมวลผลเสียงแบบเรียลไทม์ด้วย Voice live API

การประมวลผลเสียงแบบเรียลไทม์เป็นคุณสมบัติหลักของ Voice live API นักพัฒนาสามารถผนวก คอมมิต และล้างบัฟเฟอร์เสียงโดยใช้เหตุการณ์ไคลเอ็นต์เฉพาะ

  • ผนวกเสียง: เพิ่มไบต์เสียงลงในบัฟเฟอร์อินพุต
  • คอมมิตเสียง: ประมวลผลบัฟเฟอร์เสียงสําหรับการถอดเสียงหรือการสร้างการตอบสนอง
  • เสียงที่ชัดเจน: ลบข้อมูลเสียงออกจากบัฟเฟอร์

สามารถกําหนดค่าการลดเสียงรบกวนและการตัดเสียงสะท้อนเพื่อปรับปรุงคุณภาพเสียงได้ เช่น:

{
  "type": "session.update",
  "session": {
    "input_audio_noise_reduction": {
      "type": "azure_deep_noise_suppression"
    },
    "input_audio_echo_cancellation": {
      "type": "server_echo_cancellation"
    }
  }
}

Note

การลดเสียงรบกวนช่วยเพิ่มความแม่นยําของ VAD และประสิทธิภาพของโมเดลโดยการกรองเสียงอินพุต

ผสานรวมการสตรีมอวาตาร์โดยใช้ Voice live API

Voice live API รองรับการสตรีมอวาตาร์ที่ใช้ WebRTC สําหรับแอปพลิเคชันแบบอินเทอร์แอกทีฟ นักพัฒนาสามารถกําหนดการตั้งค่าวิดีโอ แอนิเมชั่น และ blendshape ได้

  • ใช้เหตุการณ์เพื่อ session.avatar.connect แสดงข้อเสนอ SDP ของลูกค้า
  • กําหนดการตั้งค่าความละเอียดของวิดีโอ บิตเรต และตัวแปลงสัญญาณ
  • กําหนดผลลัพธ์ของภาพเคลื่อนไหว เช่น blendshapes และ visemes

ตัวอย่างการกําหนดค่า:

{
  "type": "session.avatar.connect",
  "client_sdp": "<client_sdp>"
}

เคล็ดลับ

ใช้การตั้งค่าวิดีโอความละเอียดสูงเพื่อปรับปรุงคุณภาพของภาพในการโต้ตอบกับอวาตาร์