{ "info": { "author": "Reid Huntley", "author_email": "reidbhuntley@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Voice Robotifier\n================\nThis module contains an extremely simple class for recording audio, then playing it back using the text-to-speech program DECtalk.\n\nSetup\n-----\nInstallation is made easy using pip:\n```\npip install voice-robotifier\n```\n\nExample\n-------\n```python\nimport voice_robotifier\n\nvr = voice_robotifier.VoiceRobotifier()\n\nvr.set_voice_name('Harry')\nvr.set_voice_rate(250) # words per minute\n\n# optional: use different input/output devices than your current default\n# vr.set_input_device('Microphone (C-Media USB Audio Device)')\n# vr.set_output_device('CABLE Input (VB-Audio Virtual Cable)')\n\npush_to_talk_key = 'v'\nvr.start(push_to_talk_key)\n```\n\nReference\n---------\n\n### `VoiceRobotifier() -> VoiceRobotifier`\n\nCreates a new `VoiceRobotifier` instance.\n\n### `VoiceRobotifier.start(key: Union[int, str], key_quit: Union[int, str] = 'esc', block: bool = True) -> Callable[None, None]`\n\nStarts the `VoiceRobotifier` in push-to-talk mode, where `key` is an int or str representing the desired push-to-talk key, and `key_quit` represents the key that should cause the thread to stop.\n\nThe operations of the method take place in a daemon thread, which the current thread will join on if `block` is `True`. If you want to carry out other program operations while it runs, set `block` to `False`.\n\nReturns a function that stops the daemon thread when called. (This is really only useful when `block` is `False`, since otherwise the function will never return anything until an exception occurs.)\n\n### `VoiceRobotifier.start_autodetect(energy_threshold: Union[float, None] = None, key_quit: Union[int, str] = 'esc', block: bool = True) -> Callable[None, None]`\n\nStarts the `VoiceRobotifier` in autodetect mode -- it will wait for the audio input to have a greater energy level than `energy_threshold` before processing it. This value should generally be from 150 to 3500 in most cases. If `energy_threshold` is `None`, the input device's current energy level will be sampled to auto-determine an energy level.\n\nThe `key_quit` and `block` arguments as well as the returned function act the same as those in `VoiceRobotifier.start`.\n\n### `VoiceRobotifier.set_voice_name(voice_name: str) -> None`\n\nSets the voice that should be used for generating text-to-speech audio. `voice_name` should be a name from the list returned by `VoiceRobotifier.list_voices`.\n\n### `VoiceRobotifier.set_voice_rate(voice_rate: int) -> None`\n\nSets the speed of the voice used for text-to-speech in words per minute. 200 is the default.\n\n### `VoiceRobotifier.list_voice_names() -> List[str]`\n\nReturns a list of the names of all text-to-speech voices available through DECtalk. They can be passed as arguments to `VoiceRobotifier.set_voice`.\n\n### `VoiceRobotifier.set_input_device(device_name: str) -> None`\n\nSets the device used to get audio for speech recognition purposes. `device_name` should be a name from the list returned by `VoiceRobotifier.list_device_names`.\nIf this method is never called on a `VoiceRobotifier` object, it will use the system's default input device.\n\n### `VoiceRobotifier.set_output_device(device_name: str) -> None`\n\nSets the device used to output the generated text-to-speech audio. `device_name` should be a name from the list returned by `VoiceRobotifier.list_device_names`.\nIf this method is never called on a `VoiceRobotifier` object, it will use the system's default output device.\n\n### `VoiceRobotifier.list_device_names() -> List[str]`\n\nReturns a list of device names on the system that can be passed as arguments to `VoiceRobotifier.set_input_device` and `VoiceRobotifier.set_output_device`\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/reidbhuntley/voice_robotifier", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "voice-robotifier", "package_url": "https://pypi.org/project/voice-robotifier/", "platform": "", "project_url": "https://pypi.org/project/voice-robotifier/", "project_urls": { "Homepage": "https://github.com/reidbhuntley/voice_robotifier" }, "release_url": "https://pypi.org/project/voice-robotifier/1.1/", "requires_dist": [ "keyboard (>=0.13.2)", "PyAudio (>=0.2.11)", "SpeechRecognition (>=3.8.1)" ], "requires_python": "", "summary": "Turns your voice into text-to-speech!", "version": "1.1" }, "last_serial": 4134447, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "3a7dfd3cbcbce08d8efa2076945856df", "sha256": "cb4b563a54d63db21a368f572bb38aab8c090958241cc96141d58bfde441592e" }, "downloads": -1, "filename": "voice_robotifier-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3a7dfd3cbcbce08d8efa2076945856df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4501, "upload_time": "2018-08-03T03:56:04", "url": "https://files.pythonhosted.org/packages/5e/21/258fc2c61077d9efb4bbec15ad1e4952190d25189881509a947048d1b9dc/voice_robotifier-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88ddd4225368db7f5efd36cbf8934bee", "sha256": "0152afd93b376885634a291ac18b70fe7295857a4ac7db53a440932c36ef1b15" }, "downloads": -1, "filename": "voice_robotifier-1.0.tar.gz", "has_sig": false, "md5_digest": "88ddd4225368db7f5efd36cbf8934bee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4834, "upload_time": "2018-08-03T03:56:06", "url": "https://files.pythonhosted.org/packages/ba/26/0c4fe96b5a4ca12b665d0ad71721014eaa036970539853606bc3501d2cb3/voice_robotifier-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "136565427eb83b8fc78578648e86bfbe", "sha256": "b8b3ed569dfff4cd1480fcd11e1e33437dc45d87163019a35f039c734c1ca654" }, "downloads": -1, "filename": "voice_robotifier-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "136565427eb83b8fc78578648e86bfbe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5807, "upload_time": "2018-08-03T04:03:24", "url": "https://files.pythonhosted.org/packages/0d/ef/08262298d12d590d1ce1a000a76baedbd75f1aee33f977efac02c63b613d/voice_robotifier-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39f3880305617ea03ae1b6998df7e2cc", "sha256": "8b5cbc20de64431441d8bcb354a2de5a85d3d1f6e79210f10cc39846a4cb1a4f" }, "downloads": -1, "filename": "voice_robotifier-1.0.1.tar.gz", "has_sig": false, "md5_digest": "39f3880305617ea03ae1b6998df7e2cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5303, "upload_time": "2018-08-03T04:03:25", "url": "https://files.pythonhosted.org/packages/66/1e/cbfa8b6cfea23ac5687c69a65da0a1f60ba12381819f93276adb572a9d42/voice_robotifier-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ae607f0788acac535edb275722e71ef0", "sha256": "81467f910664ef991e0d12a796b071d3c1ff762e6dc9136603fde3ba7c4672dd" }, "downloads": -1, "filename": "voice_robotifier-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ae607f0788acac535edb275722e71ef0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5814, "upload_time": "2018-08-03T04:49:01", "url": "https://files.pythonhosted.org/packages/94/68/472d709f6ca9a51b6faa44264b70e991ec58d85422c7ba765a145f1b7d67/voice_robotifier-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4180367f651128d3faa203829bf8bfcd", "sha256": "cba257b24b8a0b567aaec8f98bd72d1361fe7206780eb5c5534a8e17044c8298" }, "downloads": -1, "filename": "voice_robotifier-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4180367f651128d3faa203829bf8bfcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5305, "upload_time": "2018-08-03T04:49:03", "url": "https://files.pythonhosted.org/packages/69/5a/eb2afbc5eca5e74ca8d3eae2b094ada1d5c37222731e76580342ce0208df/voice_robotifier-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "b7323e1d115f7bd025f3e63355772ab7", "sha256": "18f4c82687695766df372de5eaa5eee0d71f1eb325c60b75acb9cc3c6c6bc18b" }, "downloads": -1, "filename": "voice_robotifier-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b7323e1d115f7bd025f3e63355772ab7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5885, "upload_time": "2018-08-03T14:58:30", "url": "https://files.pythonhosted.org/packages/e3/76/1ea6e433e3e6b5821e6e86e2d69d4419cc32f504ba13eaa8053876c412f6/voice_robotifier-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "814ac7e14bcd65488fb2669d01e717ff", "sha256": "ed205e016d441e01b3881b62fab3c45c7c5ec01e4812e80664a28b9390f0d588" }, "downloads": -1, "filename": "voice_robotifier-1.0.3.tar.gz", "has_sig": false, "md5_digest": "814ac7e14bcd65488fb2669d01e717ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5382, "upload_time": "2018-08-03T14:58:31", "url": "https://files.pythonhosted.org/packages/02/d3/deed924263282113f9bd8349195b2833d89fa3c91af0add06cc09cbacbe8/voice_robotifier-1.0.3.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "cb634ba90567f531fada64a58471327d", "sha256": "83b3f3d71cbe1dce1e11c054a0a9500176e0f65b3a304381b3b0e23083261bce" }, "downloads": -1, "filename": "voice_robotifier-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cb634ba90567f531fada64a58471327d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 511275, "upload_time": "2018-08-03T23:53:40", "url": "https://files.pythonhosted.org/packages/2f/9d/aeda8158179516a644816312a74f663b64e674f2cbfdf0ab0595aa6b85d4/voice_robotifier-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbe6b46b18d1cf0f4e6c992073ef8526", "sha256": "09dc702f453c83d0d468931f54d6ccd488c1776dbf7fca1e6dacabc8aab5fb7d" }, "downloads": -1, "filename": "voice_robotifier-1.1.tar.gz", "has_sig": false, "md5_digest": "cbe6b46b18d1cf0f4e6c992073ef8526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 514017, "upload_time": "2018-08-03T23:53:42", "url": "https://files.pythonhosted.org/packages/a6/c6/ed6e4a22406e31791571a824352e34991a98e2bc89c8e350d821cea30a73/voice_robotifier-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cb634ba90567f531fada64a58471327d", "sha256": "83b3f3d71cbe1dce1e11c054a0a9500176e0f65b3a304381b3b0e23083261bce" }, "downloads": -1, "filename": "voice_robotifier-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cb634ba90567f531fada64a58471327d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 511275, "upload_time": "2018-08-03T23:53:40", "url": "https://files.pythonhosted.org/packages/2f/9d/aeda8158179516a644816312a74f663b64e674f2cbfdf0ab0595aa6b85d4/voice_robotifier-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbe6b46b18d1cf0f4e6c992073ef8526", "sha256": "09dc702f453c83d0d468931f54d6ccd488c1776dbf7fca1e6dacabc8aab5fb7d" }, "downloads": -1, "filename": "voice_robotifier-1.1.tar.gz", "has_sig": false, "md5_digest": "cbe6b46b18d1cf0f4e6c992073ef8526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 514017, "upload_time": "2018-08-03T23:53:42", "url": "https://files.pythonhosted.org/packages/a6/c6/ed6e4a22406e31791571a824352e34991a98e2bc89c8e350d821cea30a73/voice_robotifier-1.1.tar.gz" } ] }