dv-pipecat-ai 0.0.93.dev134__tar.gz → 0.0.93.dev136__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.
Files changed (528) hide show
  1. {dv_pipecat_ai-0.0.93.dev134/src/dv_pipecat_ai.egg-info → dv_pipecat_ai-0.0.93.dev136}/PKG-INFO +1 -1
  2. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136/src/dv_pipecat_ai.egg-info}/PKG-INFO +1 -1
  3. dv_pipecat_ai-0.0.93.dev136/src/dv_pipecat_ai.egg-info/scm_version.json +8 -0
  4. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/tts.py +153 -149
  5. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/maya/tts.py +17 -2
  6. dv_pipecat_ai-0.0.93.dev134/src/dv_pipecat_ai.egg-info/scm_version.json +0 -8
  7. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.dockerignore +0 -0
  8. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/1-bug_report.yml +0 -0
  9. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/2-question.yml +0 -0
  10. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/3-feature_request.yml +0 -0
  11. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/4-service-issue.yml +0 -0
  12. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/5-new-service.yml +0 -0
  13. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/6-dependency.yml +0 -0
  14. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/7-troubleshooting.yml +0 -0
  15. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  16. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  17. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/build.yaml +0 -0
  18. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/coverage.yaml +0 -0
  19. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/force_push_to_pypi.yml +0 -0
  20. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/format.yaml +0 -0
  21. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/github.yml +0 -0
  22. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/publish.yaml +0 -0
  23. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/publish_test.yaml +0 -0
  24. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/python-compatibility.yaml +0 -0
  25. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/set-traffic-split.yml +0 -0
  26. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/sync-quickstart.yaml +0 -0
  27. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.github/workflows/tests.yaml +0 -0
  28. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.gitignore +0 -0
  29. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.pre-commit-config.yaml +0 -0
  30. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/.readthedocs.yaml +0 -0
  31. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/CHANGELOG.md +0 -0
  32. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/CHANGELOG.md.template +0 -0
  33. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/CLAUDE.md +0 -0
  34. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/COMMUNITY_INTEGRATIONS.md +0 -0
  35. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/CONTRIBUTING.md +0 -0
  36. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/DOCKER_BUILD_OPTIMIZATION_SUMMARY.md +0 -0
  37. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/LICENSE +0 -0
  38. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/MANIFEST.in +0 -0
  39. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/README.md +0 -0
  40. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/SECURITY.md +0 -0
  41. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/UPSTREAM_SYNC.md +0 -0
  42. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/ansible.cfg +0 -0
  43. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/ansible_deployment.sh +0 -0
  44. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/changelog/4567.fixed.md +0 -0
  45. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/cleanup_old_containers.yml +0 -0
  46. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/codecov.yml +0 -0
  47. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/create-new-machine/ansible.cfg +0 -0
  48. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/create-new-machine/ansible_setup.sh +0 -0
  49. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/create-new-machine/inventory.ini +0 -0
  50. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/create-new-machine/replace_env.yml +0 -0
  51. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/create-new-machine/setup_playbook.yml +0 -0
  52. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/create_inventory.py +0 -0
  53. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/delete_old_dockers.sh +0 -0
  54. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/deploy.sh +0 -0
  55. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/deploy_playbook.yml +0 -0
  56. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/docker-compose.dev.yml +0 -0
  57. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/dump_logs.yml +0 -0
  58. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/env.example +0 -0
  59. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/fetch_logs.yml +0 -0
  60. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/inventory.ini +0 -0
  61. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/.helmignore +0 -0
  62. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/Chart.yaml +0 -0
  63. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/_helpers.tpl +0 -0
  64. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/backendconfig.yaml +0 -0
  65. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/cluster-role.yaml +0 -0
  66. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/deployment.yaml +0 -0
  67. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/hpa.yaml +0 -0
  68. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/ingress.yaml +0 -0
  69. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/keda-api-key-secret.yaml +0 -0
  70. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/keda-scaledobject.yaml +0 -0
  71. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/keda-trigger-auth.yaml +0 -0
  72. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/pdb.yaml +0 -0
  73. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/templates/service.yaml +0 -0
  74. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/values-canary.yaml +0 -0
  75. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/values-prod.yaml +0 -0
  76. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/values-stage.yaml +0 -0
  77. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/dv-pipecat/values.yaml +0 -0
  78. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/k8s/istio/destination-virtualservice.yaml +0 -0
  79. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/merge-code-into-single-file.sh +0 -0
  80. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/pipecat.png +0 -0
  81. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/pyproject.toml +0 -0
  82. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/restart.sh +0 -0
  83. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/restart_playbook.yml +0 -0
  84. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/setup.cfg +0 -0
  85. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/dv_pipecat_ai.egg-info/SOURCES.txt +0 -0
  86. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/dv_pipecat_ai.egg-info/dependency_links.txt +0 -0
  87. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/dv_pipecat_ai.egg-info/requires.txt +0 -0
  88. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/dv_pipecat_ai.egg-info/scm_file_list.json +0 -0
  89. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/dv_pipecat_ai.egg-info/top_level.txt +0 -0
  90. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/__init__.py +0 -0
  91. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/__init__.py +0 -0
  92. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/base_llm_adapter.py +0 -0
  93. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/schemas/__init__.py +0 -0
  94. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/schemas/direct_function.py +0 -0
  95. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/schemas/function_schema.py +0 -0
  96. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/schemas/tools_schema.py +0 -0
  97. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/__init__.py +0 -0
  98. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/anthropic_adapter.py +0 -0
  99. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +0 -0
  100. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/bedrock_adapter.py +0 -0
  101. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/gemini_adapter.py +0 -0
  102. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/open_ai_adapter.py +0 -0
  103. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/open_ai_realtime_adapter.py +0 -0
  104. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/adapters/services/open_ai_responses_adapter.py +0 -0
  105. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/__init__.py +0 -0
  106. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/__init__.py +0 -0
  107. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-0.wav +0 -0
  108. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-1.wav +0 -0
  109. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-2.wav +0 -0
  110. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-3.wav +0 -0
  111. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-4.wav +0 -0
  112. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-5.wav +0 -0
  113. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-6.wav +0 -0
  114. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-7.wav +0 -0
  115. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-8.wav +0 -0
  116. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-9.wav +0 -0
  117. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-pound.wav +0 -0
  118. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/dtmf-star.wav +0 -0
  119. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/types.py +0 -0
  120. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/dtmf/utils.py +0 -0
  121. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/__init__.py +0 -0
  122. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/aic_filter.py +0 -0
  123. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/base_audio_filter.py +0 -0
  124. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/koala_filter.py +0 -0
  125. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/krisp_filter.py +0 -0
  126. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/krisp_viva_filter.py +0 -0
  127. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/noisereduce_filter.py +0 -0
  128. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/filters/pyrnn_local_filter.py +0 -0
  129. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/interruptions/__init__.py +0 -0
  130. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/interruptions/base_interruption_strategy.py +0 -0
  131. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/interruptions/min_words_interruption_strategy.py +0 -0
  132. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/mixers/__init__.py +0 -0
  133. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/mixers/base_audio_mixer.py +0 -0
  134. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/mixers/soundfile_mixer.py +0 -0
  135. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/resamplers/__init__.py +0 -0
  136. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/resamplers/base_audio_resampler.py +0 -0
  137. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/resamplers/resampy_resampler.py +0 -0
  138. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/resamplers/soxr_resampler.py +0 -0
  139. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/resamplers/soxr_stream_resampler.py +0 -0
  140. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/__init__.py +0 -0
  141. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/base_turn_analyzer.py +0 -0
  142. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/__init__.py +0 -0
  143. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/base_smart_turn.py +0 -0
  144. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/data/__init__.py +0 -0
  145. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/data/smart-turn-v3.0.onnx +0 -0
  146. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/fal_smart_turn.py +0 -0
  147. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/http_smart_turn.py +0 -0
  148. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/local_coreml_smart_turn.py +0 -0
  149. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/local_smart_turn.py +0 -0
  150. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v2.py +0 -0
  151. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/turn/smart_turn/local_smart_turn_v3.py +0 -0
  152. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/utils.py +0 -0
  153. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/__init__.py +0 -0
  154. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/data/README.md +0 -0
  155. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/data/__init__.py +0 -0
  156. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/data/silero_vad.onnx +0 -0
  157. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/data/silero_vad_v2.onnx +0 -0
  158. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/silero.py +0 -0
  159. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/audio/vad/vad_analyzer.py +0 -0
  160. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/clocks/__init__.py +0 -0
  161. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/clocks/base_clock.py +0 -0
  162. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/clocks/system_clock.py +0 -0
  163. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/extensions/__init__.py +0 -0
  164. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/extensions/ivr/__init__.py +0 -0
  165. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/extensions/ivr/ivr_navigator.py +0 -0
  166. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/extensions/voicemail/__init__.py +0 -0
  167. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/extensions/voicemail/voicemail_detector.py +0 -0
  168. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/frames/__init__.py +0 -0
  169. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/frames/frames.proto +0 -0
  170. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/frames/frames.py +0 -0
  171. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/frames/protobufs/frames_pb2.py +0 -0
  172. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/metrics/__init__.py +0 -0
  173. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/metrics/connection_metrics.py +0 -0
  174. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/metrics/metrics.py +0 -0
  175. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/__init__.py +0 -0
  176. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/base_observer.py +0 -0
  177. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/loggers/__init__.py +0 -0
  178. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/loggers/debug_log_observer.py +0 -0
  179. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/loggers/llm_log_observer.py +0 -0
  180. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/loggers/transcription_log_observer.py +0 -0
  181. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +0 -0
  182. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/observers/turn_tracking_observer.py +0 -0
  183. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/__init__.py +0 -0
  184. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/base_pipeline.py +0 -0
  185. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/base_task.py +0 -0
  186. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/llm_switcher.py +0 -0
  187. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/parallel_pipeline.py +0 -0
  188. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/pipeline.py +0 -0
  189. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/runner.py +0 -0
  190. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/service_switcher.py +0 -0
  191. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/sync_parallel_pipeline.py +0 -0
  192. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/task.py +0 -0
  193. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/task_observer.py +0 -0
  194. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/to_be_updated/merge_pipeline.py +0 -0
  195. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/pipeline/tts_switcher.py +0 -0
  196. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/__init__.py +0 -0
  197. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/__init__.py +0 -0
  198. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/dtmf_aggregator.py +0 -0
  199. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/gated.py +0 -0
  200. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/gated_llm_context.py +0 -0
  201. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/gated_open_ai_llm_context.py +0 -0
  202. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/llm_context.py +0 -0
  203. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/llm_response.py +0 -0
  204. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/llm_response_universal.py +0 -0
  205. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/openai_llm_context.py +0 -0
  206. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/sentence.py +0 -0
  207. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/user_response.py +0 -0
  208. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/aggregators/vision_image_frame.py +0 -0
  209. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/async_generator.py +0 -0
  210. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/audio/__init__.py +0 -0
  211. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/audio/audio_buffer_processor.py +0 -0
  212. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/consumer_processor.py +0 -0
  213. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/dtmf_aggregator.py +0 -0
  214. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/__init__.py +0 -0
  215. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/frame_filter.py +0 -0
  216. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/function_filter.py +0 -0
  217. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/identity_filter.py +0 -0
  218. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/null_filter.py +0 -0
  219. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/stt_mute_filter.py +0 -0
  220. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/wake_check_filter.py +0 -0
  221. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/filters/wake_notifier_filter.py +0 -0
  222. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/frame_processor.py +0 -0
  223. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/frameworks/__init__.py +0 -0
  224. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/frameworks/langchain.py +0 -0
  225. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/frameworks/rtvi.py +0 -0
  226. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/frameworks/strands_agents.py +0 -0
  227. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/gstreamer/__init__.py +0 -0
  228. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/gstreamer/pipeline_source.py +0 -0
  229. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/idle_frame_processor.py +0 -0
  230. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/logger.py +0 -0
  231. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/metrics/__init__.py +0 -0
  232. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/metrics/frame_processor_metrics.py +0 -0
  233. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/metrics/sentry.py +0 -0
  234. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/producer_processor.py +0 -0
  235. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/text_transformer.py +0 -0
  236. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/transcript_processor.py +0 -0
  237. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/two_stage_user_idle_processor.py +0 -0
  238. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/processors/user_idle_processor.py +0 -0
  239. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/py.typed +0 -0
  240. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/runner/__init__.py +0 -0
  241. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/runner/daily.py +0 -0
  242. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/runner/livekit.py +0 -0
  243. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/runner/run.py +0 -0
  244. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/runner/types.py +0 -0
  245. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/runner/utils.py +0 -0
  246. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/__init__.py +0 -0
  247. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/asterisk.py +0 -0
  248. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/asterisk_chan_websocket_json.py +0 -0
  249. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/asterisk_chan_websocket_original.py +0 -0
  250. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/base_serializer.py +0 -0
  251. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/convox.py +0 -0
  252. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/custom.py +0 -0
  253. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/exotel.py +0 -0
  254. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/knowlarity.py +0 -0
  255. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/livekit.py +0 -0
  256. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/maqsam.py +0 -0
  257. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/plivo.py +0 -0
  258. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/protobuf.py +0 -0
  259. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/tatatele.py +0 -0
  260. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/telnyx.py +0 -0
  261. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/twilio.py +0 -0
  262. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/vi.py +0 -0
  263. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/serializers/voicelink.py +0 -0
  264. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/__init__.py +0 -0
  265. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ai_service.py +0 -0
  266. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ai_services.py +0 -0
  267. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/anthropic/__init__.py +0 -0
  268. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/anthropic/llm.py +0 -0
  269. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/assemblyai/__init__.py +0 -0
  270. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/assemblyai/models.py +0 -0
  271. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/assemblyai/stt.py +0 -0
  272. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/asyncai/__init__.py +0 -0
  273. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/asyncai/tts.py +0 -0
  274. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/__init__.py +0 -0
  275. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/llm.py +0 -0
  276. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/nova_sonic/__init__.py +0 -0
  277. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/nova_sonic/context.py +0 -0
  278. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/nova_sonic/frames.py +0 -0
  279. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/nova_sonic/llm.py +0 -0
  280. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/nova_sonic/ready.wav +0 -0
  281. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/stt.py +0 -0
  282. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/tts.py +0 -0
  283. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws/utils.py +0 -0
  284. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws_nova_sonic/__init__.py +0 -0
  285. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws_nova_sonic/aws.py +0 -0
  286. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws_nova_sonic/context.py +0 -0
  287. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/aws_nova_sonic/frames.py +0 -0
  288. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/__init__.py +0 -0
  289. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/common.py +0 -0
  290. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/image.py +0 -0
  291. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/llm.py +0 -0
  292. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/realtime/__init__.py +0 -0
  293. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/realtime/llm.py +0 -0
  294. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/stt.py +0 -0
  295. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/azure/tts.py +0 -0
  296. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/cartesia/__init__.py +0 -0
  297. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/cartesia/stt.py +0 -0
  298. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/cartesia/tts.py +0 -0
  299. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/cerebras/__init__.py +0 -0
  300. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/cerebras/llm.py +0 -0
  301. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepgram/__init__.py +0 -0
  302. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepgram/flux/__init__.py +0 -0
  303. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepgram/flux/stt.py +0 -0
  304. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepgram/stt.py +0 -0
  305. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepgram/tts.py +0 -0
  306. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepseek/__init__.py +0 -0
  307. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/deepseek/llm.py +0 -0
  308. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/elevenlabs/__init__.py +0 -0
  309. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/elevenlabs/stt.py +0 -0
  310. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/elevenlabs/tts.py +0 -0
  311. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fal/__init__.py +0 -0
  312. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fal/image.py +0 -0
  313. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fal/stt.py +0 -0
  314. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fireworks/__init__.py +0 -0
  315. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fireworks/llm.py +0 -0
  316. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fish/__init__.py +0 -0
  317. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/fish/tts.py +0 -0
  318. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gemini_multimodal_live/__init__.py +0 -0
  319. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gemini_multimodal_live/events.py +0 -0
  320. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gemini_multimodal_live/file_api.py +0 -0
  321. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gemini_multimodal_live/gemini.py +0 -0
  322. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gladia/__init__.py +0 -0
  323. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gladia/config.py +0 -0
  324. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/gladia/stt.py +0 -0
  325. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/__init__.py +0 -0
  326. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/frames.py +0 -0
  327. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/gemini_live/__init__.py +0 -0
  328. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/gemini_live/file_api.py +0 -0
  329. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/gemini_live/llm.py +0 -0
  330. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/gemini_live/llm_vertex.py +0 -0
  331. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/google.py +0 -0
  332. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/image.py +0 -0
  333. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/llm.py +0 -0
  334. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/llm_openai.py +0 -0
  335. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/llm_vertex.py +0 -0
  336. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/rtvi.py +0 -0
  337. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/google/stt.py +0 -0
  338. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/grok/__init__.py +0 -0
  339. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/grok/llm.py +0 -0
  340. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/groq/__init__.py +0 -0
  341. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/groq/llm.py +0 -0
  342. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/groq/stt.py +0 -0
  343. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/groq/tts.py +0 -0
  344. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/hamsa/__init__.py +0 -0
  345. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/hamsa/stt.py +0 -0
  346. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/hamsa/tts.py +0 -0
  347. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/heygen/__init__.py +0 -0
  348. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/heygen/api.py +0 -0
  349. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/heygen/client.py +0 -0
  350. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/heygen/video.py +0 -0
  351. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/hume/__init__.py +0 -0
  352. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/hume/tts.py +0 -0
  353. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/image_service.py +0 -0
  354. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/inworld/__init__.py +0 -0
  355. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/inworld/tts.py +0 -0
  356. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/llm_service.py +0 -0
  357. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/lmnt/__init__.py +0 -0
  358. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/lmnt/tts.py +0 -0
  359. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/maya/__init__.py +0 -0
  360. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/mcp_service.py +0 -0
  361. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/mem0/__init__.py +0 -0
  362. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/mem0/memory.py +0 -0
  363. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/minimax/__init__.py +0 -0
  364. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/minimax/tts.py +0 -0
  365. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/mistral/__init__.py +0 -0
  366. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/mistral/llm.py +0 -0
  367. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/moondream/__init__.py +0 -0
  368. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/moondream/vision.py +0 -0
  369. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/neuphonic/__init__.py +0 -0
  370. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/neuphonic/tts.py +0 -0
  371. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/nim/__init__.py +0 -0
  372. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/nim/llm.py +0 -0
  373. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ollama/__init__.py +0 -0
  374. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ollama/llm.py +0 -0
  375. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/__init__.py +0 -0
  376. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/base_llm.py +0 -0
  377. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/image.py +0 -0
  378. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/live/__init__.py +0 -0
  379. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/live/llm.py +0 -0
  380. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/llm.py +0 -0
  381. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/realtime/__init__.py +0 -0
  382. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/realtime/context.py +0 -0
  383. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/realtime/events.py +0 -0
  384. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/realtime/frames.py +0 -0
  385. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/realtime/llm.py +0 -0
  386. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/responses/__init__.py +0 -0
  387. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/responses/llm.py +0 -0
  388. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/stt.py +0 -0
  389. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai/tts.py +0 -0
  390. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime/__init__.py +0 -0
  391. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime/azure.py +0 -0
  392. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime/context.py +0 -0
  393. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime/events.py +0 -0
  394. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime/frames.py +0 -0
  395. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime_beta/__init__.py +0 -0
  396. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime_beta/azure.py +0 -0
  397. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime_beta/context.py +0 -0
  398. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime_beta/events.py +0 -0
  399. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime_beta/frames.py +0 -0
  400. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openai_realtime_beta/openai.py +0 -0
  401. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openpipe/__init__.py +0 -0
  402. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openpipe/llm.py +0 -0
  403. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openrouter/__init__.py +0 -0
  404. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/openrouter/llm.py +0 -0
  405. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/perplexity/__init__.py +0 -0
  406. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/perplexity/llm.py +0 -0
  407. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/piper/__init__.py +0 -0
  408. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/piper/tts.py +0 -0
  409. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/playht/__init__.py +0 -0
  410. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/playht/tts.py +0 -0
  411. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/qwen/__init__.py +0 -0
  412. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/qwen/llm.py +0 -0
  413. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/rime/__init__.py +0 -0
  414. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/rime/tts.py +0 -0
  415. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ringg/__init__.py +0 -0
  416. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ringg/stt.py +0 -0
  417. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ringg_qwen/__init__.py +0 -0
  418. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ringg_qwen/llm.py +0 -0
  419. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/riva/__init__.py +0 -0
  420. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/riva/stt.py +0 -0
  421. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/riva/tts.py +0 -0
  422. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/salesforce/__init__.py +0 -0
  423. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/salesforce/llm.py +0 -0
  424. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sambanova/__init__.py +0 -0
  425. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sambanova/llm.py +0 -0
  426. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sambanova/stt.py +0 -0
  427. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sarvam/__init__.py +0 -0
  428. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sarvam/_sdk.py +0 -0
  429. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sarvam/stt.py +0 -0
  430. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/sarvam/tts.py +0 -0
  431. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/simli/__init__.py +0 -0
  432. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/simli/video.py +0 -0
  433. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/soniox/__init__.py +0 -0
  434. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/soniox/stt.py +0 -0
  435. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/speechmatics/__init__.py +0 -0
  436. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/speechmatics/stt.py +0 -0
  437. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/stt_latency.py +0 -0
  438. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/stt_service.py +0 -0
  439. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/tavus/__init__.py +0 -0
  440. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/tavus/video.py +0 -0
  441. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/together/__init__.py +0 -0
  442. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/together/llm.py +0 -0
  443. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/tts_service.py +0 -0
  444. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ultravox/__init__.py +0 -0
  445. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/ultravox/stt.py +0 -0
  446. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/vision_service.py +0 -0
  447. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/vistaar/__init__.py +0 -0
  448. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/vistaar/llm.py +0 -0
  449. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/websocket_service.py +0 -0
  450. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/whisper/__init__.py +0 -0
  451. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/whisper/base_stt.py +0 -0
  452. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/whisper/stt.py +0 -0
  453. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/xtts/__init__.py +0 -0
  454. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/services/xtts/tts.py +0 -0
  455. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/sync/__init__.py +0 -0
  456. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/sync/base_notifier.py +0 -0
  457. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/sync/event_notifier.py +0 -0
  458. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/tests/__init__.py +0 -0
  459. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/tests/utils.py +0 -0
  460. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transcriptions/__init__.py +0 -0
  461. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transcriptions/language.py +0 -0
  462. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/__init__.py +0 -0
  463. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/base_input.py +0 -0
  464. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/base_output.py +0 -0
  465. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/base_transport.py +0 -0
  466. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/daily/__init__.py +0 -0
  467. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/daily/transport.py +0 -0
  468. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/daily/utils.py +0 -0
  469. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/heygen/__init__.py +0 -0
  470. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/heygen/transport.py +0 -0
  471. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/livekit/__init__.py +0 -0
  472. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/livekit/transport.py +0 -0
  473. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/local/__init__.py +0 -0
  474. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/local/audio.py +0 -0
  475. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/local/tk.py +0 -0
  476. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/network/__init__.py +0 -0
  477. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/network/fastapi_websocket.py +0 -0
  478. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/network/small_webrtc.py +0 -0
  479. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/network/webrtc_connection.py +0 -0
  480. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/network/websocket_client.py +0 -0
  481. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/network/websocket_server.py +0 -0
  482. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/services/__init__.py +0 -0
  483. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/services/daily.py +0 -0
  484. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/services/helpers/__init__.py +0 -0
  485. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/services/helpers/daily_rest.py +0 -0
  486. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/services/livekit.py +0 -0
  487. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/services/tavus.py +0 -0
  488. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/smallwebrtc/__init__.py +0 -0
  489. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/smallwebrtc/connection.py +0 -0
  490. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/smallwebrtc/request_handler.py +0 -0
  491. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/smallwebrtc/transport.py +0 -0
  492. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/tavus/__init__.py +0 -0
  493. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/tavus/transport.py +0 -0
  494. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/websocket/__init__.py +0 -0
  495. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/websocket/client.py +0 -0
  496. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/websocket/fastapi.py +0 -0
  497. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/websocket/server.py +0 -0
  498. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/whatsapp/__init__.py +0 -0
  499. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/whatsapp/api.py +0 -0
  500. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/transports/whatsapp/client.py +0 -0
  501. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/__init__.py +0 -0
  502. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/asyncio/__init__.py +0 -0
  503. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/asyncio/task_manager.py +0 -0
  504. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/base_object.py +0 -0
  505. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/logger_config.py +0 -0
  506. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/network.py +0 -0
  507. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/redis.py +0 -0
  508. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/string.py +0 -0
  509. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/__init__.py +0 -0
  510. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/base_text_aggregator.py +0 -0
  511. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/base_text_filter.py +0 -0
  512. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/markdown_text_filter.py +0 -0
  513. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/pattern_pair_aggregator.py +0 -0
  514. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/simple_text_aggregator.py +0 -0
  515. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/text/skip_tags_aggregator.py +0 -0
  516. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/time.py +0 -0
  517. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/__init__.py +0 -0
  518. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/class_decorators.py +0 -0
  519. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/conversation_context_provider.py +0 -0
  520. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/service_attributes.py +0 -0
  521. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/service_decorators.py +0 -0
  522. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/setup.py +0 -0
  523. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/turn_context_provider.py +0 -0
  524. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/tracing/turn_trace_observer.py +0 -0
  525. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/src/pipecat/utils/utils.py +0 -0
  526. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/stop_container.yml +0 -0
  527. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/test_elevenlabs_stt_segmented.py +0 -0
  528. {dv_pipecat_ai-0.0.93.dev134 → dv_pipecat_ai-0.0.93.dev136}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.93.dev134
3
+ Version: 0.0.93.dev136
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-pipecat-ai
3
- Version: 0.0.93.dev134
3
+ Version: 0.0.93.dev136
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
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.0.92",
3
+ "distance": 136,
4
+ "node": "gc5eead3484ac34c95382dd840f21fea051699b29",
5
+ "dirty": false,
6
+ "branch": "dv-stage",
7
+ "node_date": "2026-08-31"
8
+ }
@@ -11,7 +11,8 @@ offering both HTTP-based synthesis with SSML support and streaming synthesis
11
11
  for real-time applications.
12
12
 
13
13
  It also includes GeminiTTSService which uses Gemini's TTS-specific models
14
- for natural voice control and multi-speaker conversations.
14
+ (e.g. gemini-2.5-flash-tts) over the Cloud TTS streaming API for natural
15
+ voice control with low-latency synthesis.
15
16
  """
16
17
 
17
18
  import json
@@ -30,7 +31,6 @@ from pydantic import BaseModel
30
31
  from pipecat.frames.frames import (
31
32
  ErrorFrame,
32
33
  Frame,
33
- StartFrame,
34
34
  TTSAudioRawFrame,
35
35
  TTSStartedFrame,
36
36
  TTSStoppedFrame,
@@ -51,16 +51,6 @@ except ModuleNotFoundError as e:
51
51
  )
52
52
  raise Exception(f"Missing module: {e}")
53
53
 
54
- try:
55
- from google import genai
56
- from google.genai import types
57
-
58
- except ModuleNotFoundError as e:
59
- logger.error(f"Exception: {e}")
60
- logger.error("In order to use Gemini TTS, you need to `pip install pipecat-ai[google]`.")
61
- raise Exception(f"Missing module: {e}")
62
-
63
-
64
54
  def language_to_google_tts_language(language: Language) -> Optional[str]:
65
55
  """Convert a Language enum to Google TTS language code.
66
56
 
@@ -681,63 +671,91 @@ class GoogleTTSService(TTSService):
681
671
  yield ErrorFrame(error=error_message)
682
672
 
683
673
 
674
+ def language_to_gemini_tts_language(language: Language) -> Optional[str]:
675
+ """Convert a Language enum to a Gemini-TTS language code.
676
+
677
+ Gemini-TTS locales mostly match Cloud TTS ones, but a few differ
678
+ (https://cloud.google.com/text-to-speech/docs/gemini-tts#available_languages):
679
+ Arabic is served as ``ar-EG`` (Cloud TTS uses the pan-Arabic ``ar-XA``,
680
+ which Gemini-TTS rejects) and Urdu as ``ur-PK``. Everything else falls
681
+ back to the Cloud TTS mapping.
682
+
683
+ Args:
684
+ language: The Language enum value to convert.
685
+
686
+ Returns:
687
+ The corresponding Gemini-TTS language code, or None if not supported.
688
+ """
689
+ overrides = {
690
+ Language.AR: "ar-EG",
691
+ Language.UR: "ur-PK",
692
+ }
693
+ if language in overrides:
694
+ return overrides[language]
695
+ return language_to_google_tts_language(language)
696
+
697
+
684
698
  class GeminiTTSService(TTSService):
685
- """Gemini Text-to-Speech service using Gemini TTS models.
699
+ """Gemini Text-to-Speech streaming service using Gemini TTS models.
686
700
 
687
- Provides text-to-speech synthesis using Gemini's TTS-specific models
688
- (gemini-2.5-flash-preview-tts and gemini-2.5-pro-preview-tts) with
689
- support for natural voice control, multiple speakers, and voice styles.
701
+ Provides real-time text-to-speech synthesis using Gemini's TTS-specific
702
+ models (e.g. "gemini-2.5-flash-tts", "gemini-2.5-pro-tts") through the
703
+ Google Cloud Text-to-Speech streaming API for low-latency synthesis, with
704
+ support for style instruction prompts.
690
705
 
691
706
  Note:
692
- Requires Google AI API key. This uses the Gemini API, not Google Cloud TTS.
693
- Audio-out is currently a preview feature.
707
+ Requires Google Cloud credentials via service account JSON, file path,
708
+ or default application credentials (GOOGLE_APPLICATION_CREDENTIALS /
709
+ Workload Identity). This uses the Cloud TTS API, not the Gemini API,
710
+ so no Gemini API key is needed.
694
711
 
695
712
  Example::
696
713
 
697
714
  tts = GeminiTTSService(
698
- api_key="your-google-ai-api-key",
699
- model="gemini-2.5-flash-preview-tts",
700
- voice_id="Kore",
715
+ credentials_path="/path/to/service-account.json",
716
+ model="gemini-2.5-flash-tts",
717
+ voice_id="Achernar",
701
718
  params=GeminiTTSService.InputParams(
702
- language=Language.EN_US,
719
+ language=Language.HI,
720
+ prompt="Speak in a friendly and helpful tone",
703
721
  )
704
722
  )
705
723
  """
706
724
 
707
- GOOGLE_SAMPLE_RATE = 24000 # Google TTS always outputs at 24kHz
725
+ GOOGLE_SAMPLE_RATE = 24000 # Native Gemini TTS output rate
708
726
 
709
727
  # List of available Gemini TTS voices
710
728
  AVAILABLE_VOICES = [
711
- "Zephyr",
712
- "Puck",
713
- "Charon",
714
- "Kore",
715
- "Fenrir",
716
- "Leda",
717
- "Orus",
729
+ "Achernar",
730
+ "Achird",
731
+ "Algenib",
732
+ "Algieba",
733
+ "Alnilam",
718
734
  "Aoede",
719
- "Callirhoe",
720
735
  "Autonoe",
721
- "Enceladus",
722
- "Iapetus",
723
- "Umbriel",
724
- "Algieba",
736
+ "Callirrhoe",
737
+ "Charon",
725
738
  "Despina",
739
+ "Enceladus",
726
740
  "Erinome",
727
- "Algenib",
728
- "Rasalgethi",
729
- "Laomedeia",
730
- "Achernar",
731
- "Alnilam",
732
- "Schedar",
741
+ "Fenrir",
733
742
  "Gacrux",
743
+ "Iapetus",
744
+ "Kore",
745
+ "Laomedeia",
746
+ "Leda",
747
+ "Orus",
748
+ "Puck",
734
749
  "Pulcherrima",
735
- "Achird",
736
- "Zubenelgenubi",
737
- "Vindemiatrix",
750
+ "Rasalgethi",
738
751
  "Sadachbia",
739
752
  "Sadaltager",
740
- "Sulafar",
753
+ "Schedar",
754
+ "Sulafat",
755
+ "Umbriel",
756
+ "Vindemiatrix",
757
+ "Zephyr",
758
+ "Zubenelgenubi",
741
759
  ]
742
760
 
743
761
  class InputParams(BaseModel):
@@ -745,19 +763,19 @@ class GeminiTTSService(TTSService):
745
763
 
746
764
  Parameters:
747
765
  language: Language for synthesis. Defaults to English.
748
- multi_speaker: Whether to enable multi-speaker support.
749
- speaker_configs: List of speaker configurations for multi-speaker mode.
766
+ prompt: Optional style instructions for how to synthesize the
767
+ content (e.g. "Say this in a friendly tone").
750
768
  """
751
769
 
752
770
  language: Optional[Language] = Language.EN
753
- multi_speaker: bool = False
754
- speaker_configs: Optional[List[dict]] = None
771
+ prompt: Optional[str] = None
755
772
 
756
773
  def __init__(
757
774
  self,
758
775
  *,
759
- api_key: str,
760
- model: str = "gemini-2.5-flash-preview-tts",
776
+ credentials: Optional[str] = None,
777
+ credentials_path: Optional[str] = None,
778
+ model: str = "gemini-2.5-flash-tts",
761
779
  voice_id: str = "Kore",
762
780
  sample_rate: Optional[int] = None,
763
781
  params: Optional[InputParams] = None,
@@ -766,19 +784,16 @@ class GeminiTTSService(TTSService):
766
784
  """Initializes the Gemini TTS service.
767
785
 
768
786
  Args:
769
- api_key: Google AI API key for authentication.
770
- model: Gemini TTS model to use. Must be a TTS model like
771
- "gemini-2.5-flash-preview-tts" or "gemini-2.5-pro-preview-tts".
787
+ credentials: JSON string containing Google Cloud service account credentials.
788
+ credentials_path: Path to Google Cloud service account JSON file.
789
+ model: Gemini TTS model to use, e.g. "gemini-2.5-flash-tts" or
790
+ "gemini-2.5-pro-tts".
772
791
  voice_id: Voice name from the available Gemini voices.
773
- sample_rate: Audio sample rate in Hz. If None, uses Google's default 24kHz.
792
+ sample_rate: Audio sample rate in Hz. If None, uses the pipeline default;
793
+ the Cloud TTS API resamples server-side.
774
794
  params: TTS configuration parameters.
775
795
  **kwargs: Additional arguments passed to parent TTSService.
776
796
  """
777
- if sample_rate and sample_rate != self.GOOGLE_SAMPLE_RATE:
778
- logger.warning(
779
- f"Google TTS only supports {self.GOOGLE_SAMPLE_RATE}Hz sample rate. "
780
- f"Current rate of {sample_rate}Hz may cause issues."
781
- )
782
797
  super().__init__(sample_rate=sample_rate, **kwargs)
783
798
 
784
799
  params = params or GeminiTTSService.InputParams()
@@ -786,18 +801,42 @@ class GeminiTTSService(TTSService):
786
801
  if voice_id not in self.AVAILABLE_VOICES:
787
802
  logger.warning(f"Voice '{voice_id}' not in known voices list. Using anyway.")
788
803
 
789
- self._api_key = api_key
790
804
  self._model = model
791
- self._voice_id = voice_id
805
+ self.set_voice(voice_id)
792
806
  self._settings = {
793
807
  "language": self.language_to_service_language(params.language)
794
808
  if params.language
795
809
  else "en-US",
796
- "multi_speaker": params.multi_speaker,
797
- "speaker_configs": params.speaker_configs,
810
+ "prompt": params.prompt,
798
811
  }
812
+ self._client: texttospeech_v1.TextToSpeechAsyncClient = self._create_client(
813
+ credentials, credentials_path
814
+ )
799
815
 
800
- self._client = genai.Client(api_key=api_key)
816
+ def _create_client(
817
+ self, credentials: Optional[str], credentials_path: Optional[str]
818
+ ) -> texttospeech_v1.TextToSpeechAsyncClient:
819
+ creds: Optional[service_account.Credentials] = None
820
+
821
+ if credentials:
822
+ # Use provided credentials JSON string
823
+ json_account_info = json.loads(credentials)
824
+ creds = service_account.Credentials.from_service_account_info(json_account_info)
825
+ elif credentials_path:
826
+ # Use service account JSON file if provided
827
+ creds = service_account.Credentials.from_service_account_file(credentials_path)
828
+ else:
829
+ try:
830
+ creds, project_id = default(
831
+ scopes=["https://www.googleapis.com/auth/cloud-platform"]
832
+ )
833
+ except GoogleAuthError:
834
+ pass
835
+
836
+ if not creds:
837
+ raise ValueError("No valid credentials provided.")
838
+
839
+ return texttospeech_v1.TextToSpeechAsyncClient(credentials=creds)
801
840
 
802
841
  def can_generate_metrics(self) -> bool:
803
842
  """Check if this service can generate processing metrics.
@@ -816,111 +855,76 @@ class GeminiTTSService(TTSService):
816
855
  Returns:
817
856
  The Gemini TTS-specific language code, or None if not supported.
818
857
  """
819
- return language_to_google_tts_language(language)
820
-
821
- def set_voice(self, voice_id: str):
822
- """Set the voice for TTS generation.
823
-
824
- Args:
825
- voice_id: Name of the voice to use from AVAILABLE_VOICES.
826
- """
827
- if voice_id not in self.AVAILABLE_VOICES:
828
- logger.warning(f"Voice '{voice_id}' not in known voices list. Using anyway.")
829
- self._voice_id = voice_id
830
-
831
- async def start(self, frame: StartFrame):
832
- """Start the Gemini TTS service.
833
-
834
- Args:
835
- frame: The start frame containing initialization parameters.
836
- """
837
- await super().start(frame)
838
- if self.sample_rate != self.GOOGLE_SAMPLE_RATE:
839
- logger.warning(
840
- f"Google TTS requires {self.GOOGLE_SAMPLE_RATE}Hz sample rate. "
841
- f"Current rate of {self.sample_rate}Hz may cause issues."
842
- )
858
+ return language_to_gemini_tts_language(language)
843
859
 
844
860
  @traced_tts
845
861
  async def run_tts(self, text: str) -> AsyncGenerator[Frame, None]:
846
- """Generate speech from text using Gemini TTS models.
862
+ """Generate streaming speech from text using Gemini TTS models.
847
863
 
848
864
  Args:
849
- text: The text to synthesize into speech. Can include natural language
850
- instructions for style, tone, etc.
865
+ text: The text to synthesize into speech.
851
866
 
852
867
  Yields:
853
- Frame: Audio frames containing the synthesized speech.
868
+ Frame: Audio frames containing the synthesized speech as it's generated.
854
869
  """
855
870
  logger.debug(f"{self}: Generating TTS [{text}]")
856
871
 
857
872
  try:
858
873
  await self.start_ttfb_metrics()
859
874
 
860
- # Build the speech config
861
- if self._settings["multi_speaker"] and self._settings["speaker_configs"]:
862
- # Multi-speaker mode
863
- speaker_voice_configs = []
864
- for speaker_config in self._settings["speaker_configs"]:
865
- speaker_voice_configs.append(
866
- types.SpeakerVoiceConfig(
867
- speaker=speaker_config["speaker"],
868
- voice_config=types.VoiceConfig(
869
- prebuilt_voice_config=types.PrebuiltVoiceConfig(
870
- voice_name=speaker_config.get("voice_id", self._voice_id)
871
- )
872
- ),
873
- )
874
- )
875
-
876
- speech_config = types.SpeechConfig(
877
- multi_speaker_voice_config=types.MultiSpeakerVoiceConfig(
878
- speaker_voice_configs=speaker_voice_configs
879
- )
880
- )
881
- else:
882
- # Single speaker mode
883
- speech_config = types.SpeechConfig(
884
- voice_config=types.VoiceConfig(
885
- prebuilt_voice_config=types.PrebuiltVoiceConfig(voice_name=self._voice_id)
886
- )
887
- )
888
-
889
- # Create the generation config
890
- generation_config = types.GenerateContentConfig(
891
- response_modalities=["AUDIO"],
892
- speech_config=speech_config,
875
+ voice = texttospeech_v1.VoiceSelectionParams(
876
+ language_code=self._settings["language"],
877
+ name=self._voice_id,
878
+ model_name=self._model,
893
879
  )
894
880
 
895
- # Generate the content
896
- response = await self._client.aio.models.generate_content(
897
- model=self._model,
898
- contents=text,
899
- config=generation_config,
881
+ streaming_config = texttospeech_v1.StreamingSynthesizeConfig(
882
+ voice=voice,
883
+ streaming_audio_config=texttospeech_v1.StreamingAudioConfig(
884
+ audio_encoding=texttospeech_v1.AudioEncoding.PCM,
885
+ sample_rate_hertz=self.sample_rate,
886
+ ),
887
+ )
888
+ config_request = texttospeech_v1.StreamingSynthesizeRequest(
889
+ streaming_config=streaming_config
900
890
  )
901
891
 
892
+ async def request_generator():
893
+ yield config_request
894
+ input_kwargs = {"text": text}
895
+ if self._settings["prompt"]:
896
+ input_kwargs["prompt"] = self._settings["prompt"]
897
+ yield texttospeech_v1.StreamingSynthesizeRequest(
898
+ input=texttospeech_v1.StreamingSynthesisInput(**input_kwargs)
899
+ )
900
+
901
+ streaming_responses = await self._client.streaming_synthesize(request_generator())
902
902
  await self.start_tts_usage_metrics(text)
903
903
 
904
904
  yield TTSStartedFrame()
905
905
 
906
- # Extract audio data from response
907
- if response.candidates and len(response.candidates) > 0:
908
- candidate = response.candidates[0]
909
- if candidate.content and candidate.content.parts:
910
- for part in candidate.content.parts:
911
- if part.inline_data and part.inline_data.mime_type.startswith("audio/"):
912
- audio_data = part.inline_data.data
913
- await self.stop_ttfb_metrics()
914
-
915
- # Gemini TTS returns PCM audio data, chunk it appropriately
916
- CHUNK_SIZE = self.chunk_size
917
-
918
- for i in range(0, len(audio_data), CHUNK_SIZE):
919
- chunk = audio_data[i : i + CHUNK_SIZE]
920
- if not chunk:
921
- break
922
- frame = TTSAudioRawFrame(chunk, self.sample_rate, 1)
923
- yield frame
906
+ audio_buffer = b""
907
+ first_chunk_for_ttfb = False
908
+
909
+ CHUNK_SIZE = self.chunk_size
910
+
911
+ async for response in streaming_responses:
912
+ chunk = response.audio_content
913
+ if not chunk:
914
+ continue
915
+
916
+ if not first_chunk_for_ttfb:
917
+ await self.stop_ttfb_metrics()
918
+ first_chunk_for_ttfb = True
919
+
920
+ audio_buffer += chunk
921
+ while len(audio_buffer) >= CHUNK_SIZE:
922
+ piece = audio_buffer[:CHUNK_SIZE]
923
+ audio_buffer = audio_buffer[CHUNK_SIZE:]
924
+ yield TTSAudioRawFrame(piece, self.sample_rate, 1)
925
+
926
+ if audio_buffer:
927
+ yield TTSAudioRawFrame(audio_buffer, self.sample_rate, 1)
924
928
 
925
929
  yield TTSStoppedFrame()
926
930
 
@@ -125,7 +125,11 @@ class MayaTTSService(TTSService):
125
125
 
126
126
  Args:
127
127
  api_key: Maya API key for authentication (Bearer token).
128
- voice_id: Maya voice name — "Ananya" (female) or "Arjun" (male).
128
+ voice_id: Maya voice name. The roster is per-model: "Ananya"/"Arjun"
129
+ on the default "Maya 2 Native", a wider set (Amit, Gargi, Rahul,
130
+ Riya, Sagar, ...) on "Maya Calyx".
131
+ model: Maya model name, e.g. "Maya Calyx". None lets Maya pick its
132
+ default ("Maya 2 Native"), whose roster is only Ananya/Arjun.
129
133
  params: Additional generation parameters (language).
130
134
  base_url: Maya API base URL.
131
135
  aiohttp_session: Optional aiohttp session for connection pooling.
@@ -154,6 +158,7 @@ class MayaTTSService(TTSService):
154
158
  *,
155
159
  api_key: str,
156
160
  voice_id: str,
161
+ model: Optional[str] = None,
157
162
  params: Optional["MayaTTSService.InputParams"] = None,
158
163
  base_url: str = "https://tts.mayaresearch.ai",
159
164
  aiohttp_session: Optional[aiohttp.ClientSession] = None,
@@ -164,7 +169,11 @@ class MayaTTSService(TTSService):
164
169
 
165
170
  Args:
166
171
  api_key: Maya API key.
167
- voice_id: Voice to use ("ananya" or "arjun").
172
+ voice_id: Voice to use. Case-sensitive, and valid only for the
173
+ selected model — Maya answers 400 "invalid 'voice'" (listing
174
+ the model's roster) when the two disagree.
175
+ model: Maya model name, e.g. "Maya Calyx". None omits the field
176
+ and lets Maya fall back to "Maya 2 Native".
168
177
  params: Optional language/region input parameters.
169
178
  base_url: Maya API base URL.
170
179
  aiohttp_session: Optional shared aiohttp session.
@@ -180,6 +189,8 @@ class MayaTTSService(TTSService):
180
189
  self._endpoint = f"{self._base_url}/v1/tts"
181
190
  self._aiohttp_session = aiohttp_session
182
191
 
192
+ if model:
193
+ self.set_model_name(model)
183
194
  self.set_voice(voice_id)
184
195
 
185
196
  self._settings = {
@@ -223,6 +234,10 @@ class MayaTTSService(TTSService):
223
234
  "text": text,
224
235
  "language": self._settings["language"],
225
236
  }
237
+ # Omitted entirely when unset: Maya then serves its own default model,
238
+ # which keeps pre-Calyx callers (Ananya/Arjun) byte-identical.
239
+ if self.model_name:
240
+ payload["model"] = self.model_name
226
241
  if self._settings.get("region"):
227
242
  payload["region"] = self._settings["region"]
228
243
  headers = {
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.0.92",
3
- "distance": 134,
4
- "node": "g9e94406adbacf2c0ea761f52a2dcd448861a6d89",
5
- "dirty": false,
6
- "branch": "dv-stage",
7
- "node_date": "2026-08-24"
8
- }