diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..e3b692e3 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["esbenp.prettier-vscode", "unifiedjs.vscode-mdx"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..318f1632 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,17 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "prettier.requireConfig": true, + "[mdx]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + } +} diff --git a/api-reference/server/services/community-integrations.mdx b/api-reference/server/services/community-integrations.mdx index a8ff7661..d27f3349 100644 --- a/api-reference/server/services/community-integrations.mdx +++ b/api-reference/server/services/community-integrations.mdx @@ -29,10 +29,10 @@ Semantic retrieval services enable context-aware search and retrieval of relevan LLMs receive text or audio based input and output a streaming text response. -| Service | Repository | Maintainer(s) | -| --------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------- | -| [Anannas AI](https://anannas.ai) | https://github.com/Anannas-AI/anannas-pipecat-integration | [Haleshot](https://github.com/Haleshot) | -| [Simplismart](https://simplismart.ai) | https://github.com/simpli-smart/pipecat-simplismart | [simpli-smart](https://github.com/simpli-smart) | +| Service | Repository | Maintainer(s) | +| ------------------------------------- | --------------------------------------------------------- | ----------------------------------------------- | +| [Anannas AI](https://anannas.ai) | https://github.com/Anannas-AI/anannas-pipecat-integration | [Haleshot](https://github.com/Haleshot) | +| [Simplismart](https://simplismart.ai) | https://github.com/simpli-smart/pipecat-simplismart | [simpli-smart](https://github.com/simpli-smart) | ## Memory @@ -55,20 +55,20 @@ Observability services enable telemetry and metrics data to be passed to a Open Speech-to-Text services receive and audio input and output transcriptions. -| Service | Repository | Maintainer(s) | -| ----------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------- | -| [Simplismart](https://simplismart.ai) | https://github.com/simpli-smart/pipecat-simplismart | [simpli-smart](https://github.com/simpli-smart) | -| [Uplift AI](https://upliftai.org) | https://github.com/havkerboi123/pipecat-upliftai-stt | [havkerboi123](https://github.com/havkerboi123) | +| Service | Repository | Maintainer(s) | +| ------------------------------------- | ---------------------------------------------------- | ----------------------------------------------- | +| [Simplismart](https://simplismart.ai) | https://github.com/simpli-smart/pipecat-simplismart | [simpli-smart](https://github.com/simpli-smart) | +| [Uplift AI](https://upliftai.org) | https://github.com/havkerboi123/pipecat-upliftai-stt | [havkerboi123](https://github.com/havkerboi123) | ## Telephony Serializers Serializers convert between frames and media streams, enabling real-time communication over a websocket. -| Service | Repository | Maintainer(s) | -| -------------------------------- | ------------------------------------------ | ------------------------------------- | +| Service | Repository | Maintainer(s) | +| ------------------------------------- | ------------------------------------------------- | -------------------------------------------------- | | [Asterisk](https://www.asterisk.org/) | https://github.com/NikolayShakin/pipecat-asterisk | [Nikolai Shakin](https://github.com/NikolayShakin) | -| [AwaazAI](https://www.awaaz.ai/) | https://github.com/awaazde/pipecat-awaazai | [AwaazAI](https://github.com/awaazde) | -| [Wavix](https://wavix.com/) | https://github.com/wavix/pipecat-wavix | [Wavix](https://github.com/wavix) | +| [AwaazAI](https://www.awaaz.ai/) | https://github.com/awaazde/pipecat-awaazai | [AwaazAI](https://github.com/awaazde) | +| [Wavix](https://wavix.com/) | https://github.com/wavix/pipecat-wavix | [Wavix](https://github.com/wavix) | ## Text-to-Speech @@ -79,9 +79,9 @@ Text-to-Speech services receive text input and output audio streams or chunks. | [Deepdub](https://deepdub.ai/) | https://github.com/deepdub-ai/pipecat-deepdub-tts | [deepdub-ai](https://github.com/deepdub-ai) | | [Murf AI](https://murf.ai/api) | https://github.com/murf-ai/pipecat-murf-tts | [murf-ai](https://github.com/murf-ai) | | [Pipecat TTS Cache](https://pypi.org/project/pipecat-tts-cache/) | https://github.com/omChauhanDev/pipecat-tts-cache | [omChauhanDev](https://github.com/omChauhanDev) | -| [Respeecher](https://www.respeecher.com/real-time-tts-api) | https://github.com/respeecher/pipecat-respeecher | [respeecher](https://github.com/respeecher) | -| [Simplismart](https://simplismart.ai) | https://github.com/simpli-smart/pipecat-simplismart | [simpli-smart](https://github.com/simpli-smart) | -| [Typecast](https://typecast.ai/) | https://github.com/neosapience/pipecat-typecast | [neosapience](https://github.com/neosapience) | +| [Respeecher](https://www.respeecher.com/real-time-tts-api) | https://github.com/respeecher/pipecat-respeecher | [respeecher](https://github.com/respeecher) | +| [Simplismart](https://simplismart.ai) | https://github.com/simpli-smart/pipecat-simplismart | [simpli-smart](https://github.com/simpli-smart) | +| [Typecast](https://typecast.ai/) | https://github.com/neosapience/pipecat-typecast | [neosapience](https://github.com/neosapience) | | [Uplift AI](https://upliftai.org) | https://github.com/havkerboi123/pipecat-upliftai-tts | [havkerboi123](https://github.com/havkerboi123) | | [Voice.ai](https://voice.ai/) | https://github.com/voice-ai/voice-ai-pipecat-tts | [voice-ai](https://github.com/voice-ai) | diff --git a/pipecat/telephony/asterisk-websocket.mdx b/pipecat/telephony/asterisk-websocket.mdx deleted file mode 100644 index 3cbc8951..00000000 --- a/pipecat/telephony/asterisk-websocket.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "Asterisk Websocket Channel" -description: "Complete guide to Asterisk integration" ---- - -## Things you'll need - -- Asterisk (version >= 22.8.2) installed -- Pipecat (version >= 1.1.0) -- At least configured sip profile configured both on Asteriks and your sip-devece/softphone -- API key for Gemini - -## Simplest setup -- Install Docker -- Clone the [project](https://github.com/NikolayShakin/pipecat-asterisk) -- Add your API key for Germini in `.env` -- Run container with asterisk `cd examples/pipecat_asterisk && docker-compose up -d` -- Run pipecat app `uv run examples/pipecat_asterisk/ws_server.py` -- Register your sip-phone on 127.0.0.1:5060, Dial 24 - -## Custom setup with your Asterisk instance -### Asterisk configuration - -``` -extensions.conf -exten = 8,1,Dial(WebSocket/pipecat/c(slin)) ; Sampling rate 8kHz -;; Optionally -exten = 12,1,Dial(WebSocket/pipecat/c(slin12)) ; Sampling rate 8kHz -... -exten = 192,1,Dial(WebSocket/pipecat/c(slin192)) ; Sampling rate 192kHz -``` - -``` -websocket_client.conf -[pipecat] -type = websocket_client -uri = ws://127.0.0.1:7860/ws ; Assuming pipecat running on the same host. Adjust the address if needed -protocols = media -connection_type = per_call_config -connection_timeout = 100 -reconnect_interval = 50 -reconnect_attempts = 3 -tls_enabled = no -``` -### Pipecat configuration -Create and run your pipeline using `AsteriskWebsocketTransport` like this: -``` -from fastapi import FastAPI, WebSocket -from pipecat.pipeline.pipeline import Pipeline -from pipecat.pipeline.task import PipelineTask -from pipecat_asterisk import AsteriskWebsocketTransport - -app = FastAPI() - -@app.websocket("/ws") -async def websocket_endpoint(websocket: WebSocket): - await websocket.accept() - - # Initialize the Asterisk Transport - ws_transport = AsteriskWebsocketTransport(websocket=websocket) - - # Build your Pipecat pipeline - pipeline = Pipeline([ - ws_transport.input(), - # ... other pipeline components (VAD, LLM, TTS, etc.) - ws_transport.output(), - ]) - - task = PipelineTask(pipeline) - - # Run the pipeline - # ... -``` -`uv run your_pipeline.py` - -### Dial -Configure your sip-phone to work with asterisk and dial `8` or any other configured extension if you want to test different sampling rates. - - -## Next Steps - -- Explore the [example](https://github.com/pipecat-ai/pipecat/tree/main/examples) -- Learn about [Asterisk websocket channel](https://docs.asterisk.org/Configuration/Channel-Drivers/WebSocket/)