nodes:
  - id: dora-microphone
    build: pip install dora-microphone
    path: dora-microphone
    inputs:
      tick: dora/timer/millis/2000
    outputs:
      - audio

  - id: dora-vad
    build: pip install dora-vad
    path: dora-vad
    inputs:
      audio: dora-microphone/audio
    outputs:
      - audio

  - id: dora-distil-whisper
    build: pip install dora-distil-whisper
    path: dora-distil-whisper
    inputs:
      input: dora-vad/audio
    outputs:
      - text
    env:
      TARGET_LANGUAGE: english

  - id: camera
    build: pip install opencv-video-capture
    path: opencv-video-capture
    inputs:
      tick: dora/timer/millis/50
    outputs:
      - image
    env:
      CAPTURE_PATH: 0
      IMAGE_WIDTH: 640
      IMAGE_HEIGHT: 480

  - id: dora-qwenvl
    build: pip install dora-qwenvl
    path: dora-qwenvl
    inputs:
      image:
        source: camera/image
        queue_size: 1
      text: dora-distil-whisper/text
    outputs:
      - text
    env:
      DEFAULT_QUESTION: Describe the image in a very short sentence.
      # USE_MODELSCOPE_HUB: true

  - id: plot
    build: pip install dora-rerun
    path: dora-rerun
    inputs:
      image:
        source: camera/image
        queue_size: 1
      text_qwenvl: dora-qwenvl/text
      text_whisper: dora-distil-whisper/text
    env:
      IMAGE_WIDTH: 640
      IMAGE_HEIGHT: 480
      README: |
        # Visualization of QwenVL2

  - id: dora-outtetts
    build: pip install dora-outtetts
    path: dora-outtetts
    inputs:
      text: dora-qwenvl/text
    outputs:
      - audio

  - id: dora-pyaudio
    build: pip install dora-pyaudio
    path: dora-pyaudio
    inputs:
      audio: dora-outtetts/audio
