dv-pipecat-ai 0.0.85.dev7__tar.gz → 0.0.85.dev11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dv-pipecat-ai might be problematic. Click here for more details.
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/PKG-INFO +4 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/pyproject.toml +1 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/PKG-INFO +4 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/SOURCES.txt +6 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/requires.txt +4 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/base_turn_analyzer.py +9 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +14 -8
- dv_pipecat_ai-0.0.85.dev11/src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +6 -2
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +1 -1
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +1 -1
- dv_pipecat_ai-0.0.85.dev11/src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +124 -0
- dv_pipecat_ai-0.0.85.dev11/src/pipecat/services/salesforce/__init__.py +9 -0
- dv_pipecat_ai-0.0.85.dev11/src/pipecat/services/salesforce/llm.py +587 -0
- dv_pipecat_ai-0.0.85.dev11/src/pipecat/utils/redis.py +58 -0
- dv_pipecat_ai-0.0.85.dev11/src/pipecat/utils/text/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.dockerignore +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/build.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/coverage.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/force_push_to_pypi.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/format.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/github.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/promote-prod.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/publish.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/publish_test.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/python-compatibility.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/set-traffic-split.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/sync-quickstart.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.github/workflows/tests.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.gitignore +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.pre-commit-config.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/.readthedocs.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/CHANGELOG.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/CHANGELOG.md.template +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/CLAUDE.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/CONTRIBUTING.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/LICENSE +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/MANIFEST.in +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/README.md +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/ansible_deployment.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/cleanup_old_containers.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/codecov.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/create-new-machine/ansible.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/create-new-machine/ansible_setup.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/create-new-machine/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/create-new-machine/replace_env.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/create-new-machine/setup_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/create_inventory.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/delete_old_dockers.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/deploy.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/deploy_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/docker-compose.dev.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/dump_logs.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/env.example +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/fetch_logs.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/inventory.ini +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/.helmignore +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/Chart.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/templates/service.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/values-canary.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/values-prod.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/values-stage.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/dv-pipecat/values.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/k8s/istio/destination-virtualservice.yaml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/merge-code-into-single-file.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/pipecat.png +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/restart.sh +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/restart_playbook.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/setup.cfg +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/base_llm_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/schemas/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/schemas/direct_function.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/schemas/function_schema.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/types.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/dtmf/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/aic_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/koala_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/krisp_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/interruptions/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/mixers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/resamplers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/audio/vad → dv_pipecat_ai-0.0.85.dev11/src/pipecat/audio/turn/smart_turn/data}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/audio/vad/data → dv_pipecat_ai-0.0.85.dev11/src/pipecat/audio/vad}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/clocks → dv_pipecat_ai-0.0.85.dev11/src/pipecat/audio/vad/data}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/vad/silero.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions → dv_pipecat_ai-0.0.85.dev11/src/pipecat/clocks}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/clocks/base_clock.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/clocks/system_clock.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions/ivr → dv_pipecat_ai-0.0.85.dev11/src/pipecat/extensions}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/extensions/voicemail → dv_pipecat_ai-0.0.85.dev11/src/pipecat/extensions/ivr}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/frames → dv_pipecat_ai-0.0.85.dev11/src/pipecat/extensions/voicemail}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/metrics → dv_pipecat_ai-0.0.85.dev11/src/pipecat/frames}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/frames/frames.proto +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/frames/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/observers → dv_pipecat_ai-0.0.85.dev11/src/pipecat/metrics}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/metrics/metrics.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/observers/loggers → dv_pipecat_ai-0.0.85.dev11/src/pipecat/observers}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/observers/base_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/pipeline → dv_pipecat_ai-0.0.85.dev11/src/pipecat/observers/loggers}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/observers/turn_tracking_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors → dv_pipecat_ai-0.0.85.dev11/src/pipecat/pipeline}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/base_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/base_task.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/llm_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/runner.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/service_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/task.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/task_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/pipeline/tts_switcher.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/aggregators → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/audio → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors/aggregators}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/gated.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/gated_openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/llm_response.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/sentence.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/user_response.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/async_generator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/filters → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors/audio}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/consumer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/dtmf_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/frameworks → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors/filters}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/frame_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/function_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/identity_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/null_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/gstreamer → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors/frameworks}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/frameworks/langchain.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/frameworks/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/processors/metrics → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors/gstreamer}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/idle_frame_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/logger.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/asyncai → dv_pipecat_ai-0.0.85.dev11/src/pipecat/processors/metrics}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/metrics/sentry.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/producer_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/text_transformer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/transcript_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/processors/user_idle_processor.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/py.typed +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/runner/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/runner/daily.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/runner/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/runner/run.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/runner/types.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/runner/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/asterisk.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/base_serializer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/convox.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/custom.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/exotel.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/plivo.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/protobuf.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/telnyx.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/serializers/twilio.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/ai_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/ai_services.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/anthropic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/anthropic/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/assemblyai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/assemblyai/models.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/assemblyai/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/mistral → dv_pipecat_ai-0.0.85.dev11/src/pipecat/services/asyncai}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/asyncai/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/aws_nova_sonic/ready.wav +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/azure/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/azure/common.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/azure/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/azure/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/azure/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/azure/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/cartesia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/cartesia/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/cartesia/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/cerebras/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/cerebras/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/deepgram/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/deepgram/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/deepgram/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/deepseek/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/deepseek/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/elevenlabs/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/elevenlabs/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/elevenlabs/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fal/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fal/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fal/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fireworks/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fireworks/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fish/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/fish/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gladia/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gladia/config.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/gladia/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/google.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/llm_openai.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/llm_vertex.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/rtvi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/google/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/grok/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/grok/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/groq/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/groq/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/groq/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/groq/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/hamsa/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/hamsa/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/heygen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/heygen/api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/heygen/client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/heygen/video.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/image_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/inworld/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/inworld/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/llm_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/lmnt/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/lmnt/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/mcp_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/mem0/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/mem0/memory.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/minimax/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/minimax/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/services/soniox → dv_pipecat_ai-0.0.85.dev11/src/pipecat/services/mistral}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/mistral/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/moondream/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/moondream/vision.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/neuphonic/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/neuphonic/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/nim/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/nim/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/ollama/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/ollama/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai/base_llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai/image.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openpipe/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openpipe/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openrouter/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/openrouter/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/perplexity/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/perplexity/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/piper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/piper/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/playht/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/playht/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/qwen/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/qwen/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/rime/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/rime/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/riva/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/riva/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/riva/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/sambanova/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/sambanova/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/sambanova/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/sarvam/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/sarvam/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/sarvam/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/simli/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/simli/video.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/sync → dv_pipecat_ai-0.0.85.dev11/src/pipecat/services/soniox}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/soniox/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/speechmatics/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/speechmatics/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/stt_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/tavus/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/tavus/video.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/together/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/together/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/tts_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/ultravox/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/ultravox/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/vision_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/vistaar/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/vistaar/llm.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/websocket_service.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/whisper/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/whisper/base_stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/whisper/stt.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/xtts/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/services/xtts/tts.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/tests → dv_pipecat_ai-0.0.85.dev11/src/pipecat/sync}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/sync/base_notifier.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/sync/event_notifier.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transcriptions → dv_pipecat_ai-0.0.85.dev11/src/pipecat/tests}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/tests/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transcriptions}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transcriptions/language.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/daily → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/base_input.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/base_output.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/base_transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/livekit → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/daily}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/daily/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/daily/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/local → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/livekit}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/livekit/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/network → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/local}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/local/audio.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/local/tk.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/services → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/network}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/network/small_webrtc.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/network/webrtc_connection.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/network/websocket_client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/network/websocket_server.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/services/helpers → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/services}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/services/daily.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/smallwebrtc → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/services/helpers}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/services/livekit.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/services/tavus.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/tavus → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/smallwebrtc}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/websocket → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/tavus}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/tavus/transport.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/transports/whatsapp → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/websocket}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/websocket/client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/websocket/fastapi.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/websocket/server.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils → dv_pipecat_ai-0.0.85.dev11/src/pipecat/transports/whatsapp}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/whatsapp/api.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/transports/whatsapp/client.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils/asyncio → dv_pipecat_ai-0.0.85.dev11/src/pipecat/utils}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7/src/pipecat/utils/text → dv_pipecat_ai-0.0.85.dev11/src/pipecat/utils/asyncio}/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/asyncio/task_manager.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/base_object.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/logger_config.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/network.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/string.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/text/base_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/time.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/__init__.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/class_decorators.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/service_attributes.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/service_decorators.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/setup.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/pipecat/utils/utils.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/stop_container.yml +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/test_elevenlabs_stt_segmented.py +0 -0
- {dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dv-pipecat-ai
|
|
3
|
-
Version: 0.0.85.
|
|
3
|
+
Version: 0.0.85.dev11
|
|
4
4
|
Summary: An open source framework for voice (and multimodal) assistants
|
|
5
5
|
License-Expression: BSD-2-Clause
|
|
6
6
|
Project-URL: Source, https://github.com/pipecat-ai/pipecat
|
|
@@ -143,6 +143,9 @@ Requires-Dist: coremltools>=8.0; extra == "local-smart-turn"
|
|
|
143
143
|
Requires-Dist: transformers; extra == "local-smart-turn"
|
|
144
144
|
Requires-Dist: torch<3,>=2.5.0; extra == "local-smart-turn"
|
|
145
145
|
Requires-Dist: torchaudio<3,>=2.5.0; extra == "local-smart-turn"
|
|
146
|
+
Provides-Extra: local-smart-turn-v3
|
|
147
|
+
Requires-Dist: transformers; extra == "local-smart-turn-v3"
|
|
148
|
+
Requires-Dist: onnxruntime<2,>=1.20.1; extra == "local-smart-turn-v3"
|
|
146
149
|
Provides-Extra: remote-smart-turn
|
|
147
150
|
Provides-Extra: silero
|
|
148
151
|
Requires-Dist: onnxruntime~=1.20.1; extra == "silero"
|
|
@@ -95,6 +95,7 @@ sambanova = []
|
|
|
95
95
|
sarvam = [ "sarvamai>=0.1.19,<1", "websockets>=13.1,<15.0" ]
|
|
96
96
|
sentry = [ "sentry-sdk~=2.23.1" ]
|
|
97
97
|
local-smart-turn = [ "coremltools>=8.0", "transformers", "torch>=2.5.0,<3", "torchaudio>=2.5.0,<3" ]
|
|
98
|
+
local-smart-turn-v3 = [ "transformers", "onnxruntime>=1.20.1,<2" ]
|
|
98
99
|
remote-smart-turn = []
|
|
99
100
|
silero = [ "onnxruntime~=1.20.1" ]
|
|
100
101
|
simli = [ "simli-ai~=0.1.10"]
|
{dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dv-pipecat-ai
|
|
3
|
-
Version: 0.0.85.
|
|
3
|
+
Version: 0.0.85.dev11
|
|
4
4
|
Summary: An open source framework for voice (and multimodal) assistants
|
|
5
5
|
License-Expression: BSD-2-Clause
|
|
6
6
|
Project-URL: Source, https://github.com/pipecat-ai/pipecat
|
|
@@ -143,6 +143,9 @@ Requires-Dist: coremltools>=8.0; extra == "local-smart-turn"
|
|
|
143
143
|
Requires-Dist: transformers; extra == "local-smart-turn"
|
|
144
144
|
Requires-Dist: torch<3,>=2.5.0; extra == "local-smart-turn"
|
|
145
145
|
Requires-Dist: torchaudio<3,>=2.5.0; extra == "local-smart-turn"
|
|
146
|
+
Provides-Extra: local-smart-turn-v3
|
|
147
|
+
Requires-Dist: transformers; extra == "local-smart-turn-v3"
|
|
148
|
+
Requires-Dist: onnxruntime<2,>=1.20.1; extra == "local-smart-turn-v3"
|
|
146
149
|
Provides-Extra: remote-smart-turn
|
|
147
150
|
Provides-Extra: silero
|
|
148
151
|
Requires-Dist: onnxruntime~=1.20.1; extra == "silero"
|
{dv_pipecat_ai-0.0.85.dev7 → dv_pipecat_ai-0.0.85.dev11}/src/dv_pipecat_ai.egg-info/SOURCES.txt
RENAMED
|
@@ -139,6 +139,9 @@ src/pipecat/audio/turn/smart_turn/http_smart_turn.py
|
|
|
139
139
|
src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py
|
|
140
140
|
src/pipecat/audio/turn/smart_turn/local_smart_turn.py
|
|
141
141
|
src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py
|
|
142
|
+
src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py
|
|
143
|
+
src/pipecat/audio/turn/smart_turn/data/__init__.py
|
|
144
|
+
src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx
|
|
142
145
|
src/pipecat/audio/vad/__init__.py
|
|
143
146
|
src/pipecat/audio/vad/silero.py
|
|
144
147
|
src/pipecat/audio/vad/vad_analyzer.py
|
|
@@ -367,6 +370,8 @@ src/pipecat/services/rime/tts.py
|
|
|
367
370
|
src/pipecat/services/riva/__init__.py
|
|
368
371
|
src/pipecat/services/riva/stt.py
|
|
369
372
|
src/pipecat/services/riva/tts.py
|
|
373
|
+
src/pipecat/services/salesforce/__init__.py
|
|
374
|
+
src/pipecat/services/salesforce/llm.py
|
|
370
375
|
src/pipecat/services/sambanova/__init__.py
|
|
371
376
|
src/pipecat/services/sambanova/llm.py
|
|
372
377
|
src/pipecat/services/sambanova/stt.py
|
|
@@ -439,6 +444,7 @@ src/pipecat/utils/__init__.py
|
|
|
439
444
|
src/pipecat/utils/base_object.py
|
|
440
445
|
src/pipecat/utils/logger_config.py
|
|
441
446
|
src/pipecat/utils/network.py
|
|
447
|
+
src/pipecat/utils/redis.py
|
|
442
448
|
src/pipecat/utils/string.py
|
|
443
449
|
src/pipecat/utils/time.py
|
|
444
450
|
src/pipecat/utils/utils.py
|
|
@@ -14,6 +14,8 @@ from abc import ABC, abstractmethod
|
|
|
14
14
|
from enum import Enum
|
|
15
15
|
from typing import Optional, Tuple
|
|
16
16
|
|
|
17
|
+
from pydantic import BaseModel
|
|
18
|
+
|
|
17
19
|
from pipecat.metrics.metrics import MetricsData
|
|
18
20
|
|
|
19
21
|
|
|
@@ -29,6 +31,12 @@ class EndOfTurnState(Enum):
|
|
|
29
31
|
INCOMPLETE = 2
|
|
30
32
|
|
|
31
33
|
|
|
34
|
+
class BaseTurnParams(BaseModel):
|
|
35
|
+
"""Base class for turn analyzer parameters."""
|
|
36
|
+
|
|
37
|
+
pass
|
|
38
|
+
|
|
39
|
+
|
|
32
40
|
class BaseTurnAnalyzer(ABC):
|
|
33
41
|
"""Abstract base class for analyzing user end of turn.
|
|
34
42
|
|
|
@@ -78,7 +86,7 @@ class BaseTurnAnalyzer(ABC):
|
|
|
78
86
|
|
|
79
87
|
@property
|
|
80
88
|
@abstractmethod
|
|
81
|
-
def params(self):
|
|
89
|
+
def params(self) -> BaseTurnParams:
|
|
82
90
|
"""Get the current turn analyzer parameters.
|
|
83
91
|
|
|
84
92
|
Returns:
|
|
@@ -11,15 +11,17 @@ machine learning models to determine when a user has finished speaking, going
|
|
|
11
11
|
beyond simple silence-based detection.
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
+
import asyncio
|
|
14
15
|
import time
|
|
15
16
|
from abc import abstractmethod
|
|
17
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
16
18
|
from typing import Any, Dict, Optional, Tuple
|
|
17
19
|
|
|
18
20
|
import numpy as np
|
|
19
21
|
from loguru import logger
|
|
20
22
|
from pydantic import BaseModel
|
|
21
23
|
|
|
22
|
-
from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer, EndOfTurnState
|
|
24
|
+
from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer, BaseTurnParams, EndOfTurnState
|
|
23
25
|
from pipecat.metrics.metrics import MetricsData, SmartTurnMetricsData
|
|
24
26
|
|
|
25
27
|
# Default timing parameters
|
|
@@ -29,7 +31,7 @@ MAX_DURATION_SECONDS = 8 # Max allowed segment duration
|
|
|
29
31
|
USE_ONLY_LAST_VAD_SEGMENT = True
|
|
30
32
|
|
|
31
33
|
|
|
32
|
-
class SmartTurnParams(
|
|
34
|
+
class SmartTurnParams(BaseTurnParams):
|
|
33
35
|
"""Configuration parameters for smart turn analysis.
|
|
34
36
|
|
|
35
37
|
Parameters:
|
|
@@ -77,6 +79,9 @@ class BaseSmartTurn(BaseTurnAnalyzer):
|
|
|
77
79
|
self._speech_triggered = False
|
|
78
80
|
self._silence_ms = 0
|
|
79
81
|
self._speech_start_time = 0
|
|
82
|
+
# Thread executor that will run the model. We only need one thread per
|
|
83
|
+
# analyzer because one analyzer just handles one audio stream.
|
|
84
|
+
self._executor = ThreadPoolExecutor(max_workers=1)
|
|
80
85
|
|
|
81
86
|
@property
|
|
82
87
|
def speech_triggered(self) -> bool:
|
|
@@ -151,7 +156,10 @@ class BaseSmartTurn(BaseTurnAnalyzer):
|
|
|
151
156
|
Tuple containing the end-of-turn state and optional metrics data
|
|
152
157
|
from the ML model analysis.
|
|
153
158
|
"""
|
|
154
|
-
|
|
159
|
+
loop = asyncio.get_running_loop()
|
|
160
|
+
state, result = await loop.run_in_executor(
|
|
161
|
+
self._executor, self._process_speech_segment, self._audio_buffer
|
|
162
|
+
)
|
|
155
163
|
if state == EndOfTurnState.COMPLETE or USE_ONLY_LAST_VAD_SEGMENT:
|
|
156
164
|
self._clear(state)
|
|
157
165
|
logger.debug(f"End of Turn result: {state}")
|
|
@@ -169,9 +177,7 @@ class BaseSmartTurn(BaseTurnAnalyzer):
|
|
|
169
177
|
self._speech_start_time = 0
|
|
170
178
|
self._silence_ms = 0
|
|
171
179
|
|
|
172
|
-
|
|
173
|
-
self, audio_buffer
|
|
174
|
-
) -> Tuple[EndOfTurnState, Optional[MetricsData]]:
|
|
180
|
+
def _process_speech_segment(self, audio_buffer) -> Tuple[EndOfTurnState, Optional[MetricsData]]:
|
|
175
181
|
"""Process accumulated audio segment using ML model."""
|
|
176
182
|
state = EndOfTurnState.INCOMPLETE
|
|
177
183
|
|
|
@@ -203,7 +209,7 @@ class BaseSmartTurn(BaseTurnAnalyzer):
|
|
|
203
209
|
if len(segment_audio) > 0:
|
|
204
210
|
start_time = time.perf_counter()
|
|
205
211
|
try:
|
|
206
|
-
result =
|
|
212
|
+
result = self._predict_endpoint(segment_audio)
|
|
207
213
|
state = (
|
|
208
214
|
EndOfTurnState.COMPLETE
|
|
209
215
|
if result["prediction"] == 1
|
|
@@ -249,6 +255,6 @@ class BaseSmartTurn(BaseTurnAnalyzer):
|
|
|
249
255
|
return state, result_data
|
|
250
256
|
|
|
251
257
|
@abstractmethod
|
|
252
|
-
|
|
258
|
+
def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
|
|
253
259
|
"""Predict end-of-turn using ML model from audio data."""
|
|
254
260
|
pass
|
|
Binary file
|
|
@@ -104,11 +104,15 @@ class HttpSmartTurnAnalyzer(BaseSmartTurn):
|
|
|
104
104
|
logger.error(f"Failed to send raw request to Daily Smart Turn: {e}")
|
|
105
105
|
raise Exception("Failed to send raw request to Daily Smart Turn.")
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
|
|
108
108
|
"""Predict end-of-turn using remote HTTP ML service."""
|
|
109
109
|
try:
|
|
110
110
|
serialized_array = self._serialize_array(audio_array)
|
|
111
|
-
|
|
111
|
+
loop = asyncio.get_running_loop()
|
|
112
|
+
future = asyncio.run_coroutine_threadsafe(
|
|
113
|
+
self._send_raw_request(serialized_array), loop
|
|
114
|
+
)
|
|
115
|
+
return future.result()
|
|
112
116
|
except Exception as e:
|
|
113
117
|
logger.error(f"Smart turn prediction failed: {str(e)}")
|
|
114
118
|
# Return an incomplete prediction when a failure occurs
|
|
@@ -64,7 +64,7 @@ class LocalSmartTurnAnalyzer(BaseSmartTurn):
|
|
|
64
64
|
self._turn_model.eval()
|
|
65
65
|
logger.debug("Loaded Local Smart Turn")
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
|
|
68
68
|
"""Predict end-of-turn using local PyTorch model."""
|
|
69
69
|
inputs = self._turn_processor(
|
|
70
70
|
audio_array,
|
|
@@ -73,7 +73,7 @@ class LocalSmartTurnAnalyzerV2(BaseSmartTurn):
|
|
|
73
73
|
self._turn_model.eval()
|
|
74
74
|
logger.debug("Loaded Local Smart Turn v2")
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
|
|
77
77
|
"""Predict end-of-turn using local PyTorch model."""
|
|
78
78
|
inputs = self._turn_processor(
|
|
79
79
|
audio_array,
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright (c) 2025, Daily
|
|
3
|
+
#
|
|
4
|
+
# SPDX-License-Identifier: BSD 2-Clause License
|
|
5
|
+
#
|
|
6
|
+
|
|
7
|
+
"""Local turn analyzer for on-device ML inference using the smart-turn-v3 model.
|
|
8
|
+
|
|
9
|
+
This module provides a smart turn analyzer that uses an ONNX model for
|
|
10
|
+
local end-of-turn detection without requiring network connectivity.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from typing import Any, Dict, Optional
|
|
14
|
+
|
|
15
|
+
import numpy as np
|
|
16
|
+
from loguru import logger
|
|
17
|
+
|
|
18
|
+
from pipecat.audio.turn.smart_turn.base_smart_turn import BaseSmartTurn
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
import onnxruntime as ort
|
|
22
|
+
from transformers import WhisperFeatureExtractor
|
|
23
|
+
except ModuleNotFoundError as e:
|
|
24
|
+
logger.error(f"Exception: {e}")
|
|
25
|
+
logger.error(
|
|
26
|
+
"In order to use LocalSmartTurnAnalyzerV3, you need to `pip install pipecat-ai[local-smart-turn-v3]`."
|
|
27
|
+
)
|
|
28
|
+
raise Exception(f"Missing module: {e}")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class LocalSmartTurnAnalyzerV3(BaseSmartTurn):
|
|
32
|
+
"""Local turn analyzer using the smart-turn-v3 ONNX model.
|
|
33
|
+
|
|
34
|
+
Provides end-of-turn detection using locally-stored ONNX model,
|
|
35
|
+
enabling offline operation without network dependencies.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
def __init__(self, *, smart_turn_model_path: Optional[str] = None, **kwargs):
|
|
39
|
+
"""Initialize the local ONNX smart-turn-v3 analyzer.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
smart_turn_model_path: Path to the ONNX model file. If this is not
|
|
43
|
+
set, the bundled smart-turn-v3.0 model will be used.
|
|
44
|
+
**kwargs: Additional arguments passed to BaseSmartTurn.
|
|
45
|
+
"""
|
|
46
|
+
super().__init__(**kwargs)
|
|
47
|
+
|
|
48
|
+
logger.debug("Loading Local Smart Turn v3 model...")
|
|
49
|
+
|
|
50
|
+
if not smart_turn_model_path:
|
|
51
|
+
# Load bundled model
|
|
52
|
+
model_name = "smart-turn-v3.0.onnx"
|
|
53
|
+
package_path = "pipecat.audio.turn.smart_turn.data"
|
|
54
|
+
|
|
55
|
+
try:
|
|
56
|
+
import importlib_resources as impresources
|
|
57
|
+
|
|
58
|
+
smart_turn_model_path = str(impresources.files(package_path).joinpath(model_name))
|
|
59
|
+
except BaseException:
|
|
60
|
+
from importlib import resources as impresources
|
|
61
|
+
|
|
62
|
+
try:
|
|
63
|
+
with impresources.path(package_path, model_name) as f:
|
|
64
|
+
smart_turn_model_path = f
|
|
65
|
+
except BaseException:
|
|
66
|
+
smart_turn_model_path = str(
|
|
67
|
+
impresources.files(package_path).joinpath(model_name)
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
so = ort.SessionOptions()
|
|
71
|
+
so.execution_mode = ort.ExecutionMode.ORT_SEQUENTIAL
|
|
72
|
+
so.inter_op_num_threads = 1
|
|
73
|
+
so.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_ALL
|
|
74
|
+
|
|
75
|
+
self._feature_extractor = WhisperFeatureExtractor(chunk_length=8)
|
|
76
|
+
self._session = ort.InferenceSession(smart_turn_model_path, sess_options=so)
|
|
77
|
+
|
|
78
|
+
logger.debug("Loaded Local Smart Turn v3")
|
|
79
|
+
|
|
80
|
+
def _predict_endpoint(self, audio_array: np.ndarray) -> Dict[str, Any]:
|
|
81
|
+
"""Predict end-of-turn using local ONNX model."""
|
|
82
|
+
|
|
83
|
+
def truncate_audio_to_last_n_seconds(audio_array, n_seconds=8, sample_rate=16000):
|
|
84
|
+
"""Truncate audio to last n seconds or pad with zeros to meet n seconds."""
|
|
85
|
+
max_samples = n_seconds * sample_rate
|
|
86
|
+
if len(audio_array) > max_samples:
|
|
87
|
+
return audio_array[-max_samples:]
|
|
88
|
+
elif len(audio_array) < max_samples:
|
|
89
|
+
# Pad with zeros at the beginning
|
|
90
|
+
padding = max_samples - len(audio_array)
|
|
91
|
+
return np.pad(audio_array, (padding, 0), mode="constant", constant_values=0)
|
|
92
|
+
return audio_array
|
|
93
|
+
|
|
94
|
+
# Truncate to 8 seconds (keeping the end) or pad to 8 seconds
|
|
95
|
+
audio_array = truncate_audio_to_last_n_seconds(audio_array, n_seconds=8)
|
|
96
|
+
|
|
97
|
+
# Process audio using Whisper's feature extractor
|
|
98
|
+
inputs = self._feature_extractor(
|
|
99
|
+
audio_array,
|
|
100
|
+
sampling_rate=16000,
|
|
101
|
+
return_tensors="np",
|
|
102
|
+
padding="max_length",
|
|
103
|
+
max_length=8 * 16000,
|
|
104
|
+
truncation=True,
|
|
105
|
+
do_normalize=True,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
# Extract features and ensure correct shape for ONNX
|
|
109
|
+
input_features = inputs.input_features.squeeze(0).astype(np.float32)
|
|
110
|
+
input_features = np.expand_dims(input_features, axis=0) # Add batch dimension
|
|
111
|
+
|
|
112
|
+
# Run ONNX inference
|
|
113
|
+
outputs = self._session.run(None, {"input_features": input_features})
|
|
114
|
+
|
|
115
|
+
# Extract probability (ONNX model returns sigmoid probabilities)
|
|
116
|
+
probability = outputs[0][0].item()
|
|
117
|
+
|
|
118
|
+
# Make prediction (1 for Complete, 0 for Incomplete)
|
|
119
|
+
prediction = 1 if probability > 0.5 else 0
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
"prediction": prediction,
|
|
123
|
+
"probability": probability,
|
|
124
|
+
}
|