{"id":26415047,"url":"https://github.com/symblai/symbl-python-sdk","last_synced_at":"2025-03-18T00:17:17.904Z","repository":{"id":37982214,"uuid":"351770090","full_name":"symblai/symbl-python-sdk","owner":"symblai","description":"Symbl.ai's Python SDK runs in real-time to deliver continuous intelligence over conversation data for sentiments, action-items, follow-ups, questions, or personalized intents. In addition, you can transcribe calls into transcripts. ","archived":false,"fork":false,"pushed_at":"2024-04-18T16:05:38.000Z","size":155,"stargazers_count":13,"open_issues_count":4,"forks_count":7,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-05-28T18:05:59.119Z","etag":null,"topics":["continuous","conversation","intelligence","python","real-time","sdk","sentiments","stream","transcription"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/symblai.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2021-03-26T12:09:47.000Z","updated_at":"2023-11-21T20:44:06.000Z","dependencies_parsed_at":"2023-01-21T08:18:08.836Z","dependency_job_id":null,"html_url":"https://github.com/symblai/symbl-python-sdk","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2Fsymbl-python-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2Fsymbl-python-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2Fsymbl-python-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/symblai%2Fsymbl-python-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/symblai","download_url":"https://codeload.github.com/symblai/symbl-python-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244130306,"owners_count":20402756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continuous","conversation","intelligence","python","real-time","sdk","sentiments","stream","transcription"],"created_at":"2025-03-18T00:17:17.322Z","updated_at":"2025-03-18T00:17:17.897Z","avatar_url":"https://github.com/symblai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Symbl Python SDK\n\nThe Symbl Python SDK provides convenient access to the Symbl API from applications written in the Python language. It includes a pre-defined set of classes for a simple and clear utilization of APIs.\n\n## Documentation\n\nSee the [Python API docs](https://docs.symbl.ai/docs/).\n\n### Requirements\n\n- Python 2.7+ or Python 3.4+ (PyPy supported)\n\u003e\n\u003ejust run the command mentioned below in your terminal to know the version of Python installed in your system:\n\n```sh\n  python --version\n```\n\n## Installation\n\nFirst make sure that Python is installed in your system.\n\nTo install the python, just visit the links mentioned below:\n\n- Windows: https://phoenixnap.com/kb/how-to-install-python-3-windows\n- Mac: https://flaviocopes.com/python-installation-macos/\n\nYou don't need this source code unless you want to modify the package. If you just\nwant to use the package, then you can install it, either using 'pip' or with 'source':\n\n\u003ejust run the command mentioned below to install using 'pip' \n\u003e\n\u003eUse `pip` if you are working on Python 2.x\n\u003e\n\u003eUse `pip3` if you are working on Python 3.x\n\n```sh\npip install --upgrade symbl\n```\n\n\u003eor you can also install the package with source:\n\n```sh\npython setup.py install\n```\n\n## Configuration\n\nThe library needs to be configured with your account's credentials (appId \u0026 appSecret) which is\navailable in your [Symbl Platform][api-keys].\n\nYou can either provide the credentials by saving a file named symbl.conf in your working directory or home directory in the following format.\n\n\u003eHome directory will be C:/Users/\\\u003cYour Username\\\u003e on your windows system, or ~ in your Linux or Mac system.\n\n```conf\n[credentials]\napp_id=\u003capp_id\u003e\napp_secret=\u003capp_secret\u003e\n```\nExample for 'symbl.conf' file\n\n```conf\n[credentials]\napp_id=1234567890 #Update with your app_id, without any quotes\napp_secret=abcdefghijklmnop #Update with your app_secret, without any quotes\n```\n## A speech to text converter under 5 lines of code\n\nTo know more about **Async Audio Api**, click [here][async_audio-docs]. To know more about the Python SDK Audio Package, click [here][extended_readme-audio]\n\n```python\nimport symbl\n\n# Process audio file\nconversation_object = symbl.Audio.process_file(\n  # credentials={app_id: \u003capp_id\u003e, app_secret: \u003capp_secret\u003e}, #Optional, Don't add this parameter if you have symbl.conf file in your home directory\n  file_path=\"\u003cfile_path\u003e\")\n\n# Printing transcription messages\nprint(conversation_object.get_messages())\n```\n\nTo know more about conversation object and it's functions, click [here][extended_readme-conversation-object]\n\n## Extracting insights from Textual conversation\n\nTo know more about **Async Text Api**, click [here][async_text-docs]. To know more about the Python SDK Text Package, click [here][extended_readme-text]\n\n  ``` python\n\nimport symbl\n\npayload = {\n  \"messages\": [\n    {\n      \"payload\": {\"content\": \"Hi Anthony. I saw your complaints about bad call reception on your mobile phone. Can I know what issues you are currently facing?\"},\n      \"from\": {\"userId\": \"surbhi@example.com\",\"name\": \"Surbhi Rathore\"}\n    },\n    {\n      \"payload\": {\"content\": \"Hey Surbhi, thanks for reaching out. Whenever I am picking up the call there is a lot of white noise and I literally can’t hear anything.\"},\n      \"from\": {\"userId\": \"anthony@example.com\",\"name\": \"Anthony Claudia\"}\n    },\n    {\n      \"payload\": {\"content\": \"Okay. I can schedule a visit from one of our technicians for tomorrow afternoon at 1:00 PM. He can look at your mobile and handle any issue right away\"},\n      \"from\": {\"userId\": \"surbhi@example.com\",\"name\": \"Surbhi Rathore\"}\n    },\n    {\n      \"payload\": {\"content\": \"That will be really helpful. I'll follow up with the technician about some other issues too, tomorrow\"},\n      \"from\": {\"userId\": \"anthony@example.com\",\"name\": \"Anthony Claudia\"}\n    },\n    {\n      \"payload\": {\"content\": \"Sure. We are happy to help. I am scheduling the visit for tomorrow. Thanks for using Abccorp networks. Have a good day.\"},\n      \"from\": {\"userId\": \"surbhi@example.com\",\"name\": \"Surbhi Rathore\"}\n    }\n  ]\n}\n\nconversation_object = symbl.Text.process(payload=payload)\n\nprint(conversation_object.get_messages())\nprint(conversation_object.get_topics())\nprint(conversation_object.get_action_items())\nprint(conversation_object.get_follow_ups())\n\n  ```\n\n## Analysis of your Zoom Call on your email (Symbl will join your zoom call and send you analysis on provided email)\n\nTo know more about **telephony api**, click [here][telephony_api-docs]. To know more about the Python SDK Telephony Package, click [here][extended_readme-telephony]\n\n```python\n\nimport symbl\n\nphoneNumber = \"\" # Zoom phone number to be called, check here https://us02web.zoom.us/zoomconference\nmeetingId = \"\" # Your zoom meetingId\npassword = \"\" # Your zoom meeting passcode\nemailId = \"\"\n\nconnection_object = symbl.Telephony.start_pstn(\n      # credentials={app_id: \u003capp_id\u003e, app_secret: \u003capp_secret\u003e}, #Optional, Don't add this parameter if you have symbl.conf file in your home directory or working directory\n      phone_number=phoneNumber,\n      dtmf = \",,{}#,,{}#\".format(meetingId, password),\n      actions = [\n        {\n          \"invokeOn\": \"stop\",\n          \"name\": \"sendSummaryEmail\",\n          \"parameters\": {\n            \"emails\": [\n              emailId\n            ],\n          },\n        },\n      ]\n    )\n\nprint(connection_object)\n\n```\n\n## Live audio transcript using your system's microphone\n\nTo know more about **streaming api**, click [here][streaming_api-docs]. To know more about the Python SDK Streaming Package, click [here][extended_readme-streaming]\n\n```python\nimport symbl\n\nconnection_object = symbl.Streaming.start_connection()\n\nconnection_object.subscribe({'message_response': lambda response: print('got this response from callback', response)})\n\nconnection_object.send_audio_from_mic()\n```\n\n## Extended Readme\n\nYou can see all the functions provided by SDK in the **extended [readme.md](https://github.com/symblai/symbl-python/blob/main/symbl/readme.md) file**.\n\nYou can go through some examples for understanding the use of all functionality [Explore more example](https://github.com/symblai/symbl-python/tree/main/example)\n\n## Possible Errors\n\n1. PortAudio Errors on Mac Systems:-\n\n   If you're getting PortAudio Error which looks like this\n    \u003e sounddevice.PortAudioError: Error opening InputStream: Internal PortAudio error [PaErrorCode -9986]\n  \n   Please consider updating the PortAudio library in your system. Running the following command can help.\n    \u003e brew install portaudio\n\n## Need support\n\nIf you are looking for some specific use cases do check our [examples][examples] folder.\n\nIf you can't find your answers, do let us know at support@symbl.ai or join our slack channel [here][slack-invite].\n\n[api-keys]: https://platform.symbl.ai/#/login\n[symbl-docs]: https://docs.symbl.ai/docs/\n[streaming_api-docs]: https://docs.symbl.ai/docs/streamingapi/introduction\n[telephony_api-docs]: https://docs.symbl.ai/docs/telephony/introduction\n[async_text-docs]: https://docs.symbl.ai/docs/async-api/overview/text/post-text/\n[async_audio-docs]: https://docs.symbl.ai/docs/async-api/overview/audio/post-audio\n[extended-readme]: https://github.com/symblai/symbl-python/blob/main/symbl/readme.md\n[extended_readme-conversation-object]: https://github.com/symblai/symbl-python/blob/main/symbl/readme.md#conversation-object\n[extended_readme-streaming]: https://github.com/symblai/symbl-python/blob/main/symbl/readme.md#streaming-class\n[extended_readme-telephony]: https://github.com/symblai/symbl-python/blob/main/symbl/readme.md#telephony-class\n[extended_readme-text]: \u003chttps://github.com/symblai/symbl-python/blob/main/symbl/readme.md#text-class\u003e\n[extended_readme-audio]: https://github.com/symblai/symbl-python/blob/main/symbl/readme.md#audio-class\n[examples]: https://github.com/symblai/symbl-python/tree/main/example\n[unicodeerror]: https://stackoverflow.com/questions/37400974/unicode-error-unicodeescape-codec-cant-decode-bytes-in-position-2-3-trunca\n[slack-invite]: https://symbldotai.slack.com/join/shared_invite/zt-4sic2s11-D3x496pll8UHSJ89cm78CA#/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymblai%2Fsymbl-python-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsymblai%2Fsymbl-python-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsymblai%2Fsymbl-python-sdk/lists"}