ManimCommunity / manim-voiceover

Manim plugin for all things voiceover
https://voiceover.manim.community/en/stable
MIT License
154 stars 20 forks source link

Recording crashes due to possible libc++ error? #63

Open mcnica89 opened 10 months ago

mcnica89 commented 10 months ago

Description of bug / unexpected behavior

Crashes when "r" key is pressed during recording

Expected behavior

Not to crash

How to reproduce the issue

Code for reproducing the problem ``` # Write your code here :-) from manim import * from manim_voiceover import VoiceoverScene from manim_voiceover.services.gtts import GTTSService from manim_voiceover.services.recorder import RecorderService class GTTSExample(VoiceoverScene): def construct(self): #self.set_speech_service(GTTSService(lang="en", tld="com")) self.set_speech_service(RecorderService()) circle = Circle() square = Square().shift(2 * RIGHT) with self.voiceover(text="here is the first text it is really long and it goes on and on forever and ever and ever.") as tracker: self.play(Create(circle)) with self.voiceover(text="here is more text it is really long and it goes on and on forever and ever and ever.") as tracker: self.play(circle.animate.shift(2 * LEFT)) self.wait() ```

Logs

Terminal output ``` (base) mnica@Mihais-MBP manimCLT % manim -pql manim-vo.py --disable_caching Manim Community v0.17.3 -------------------------device list------------------------- Input Device id 1 - MacBook Pro Microphone Input Device id 3 - Microsoft Teams Audio ------------------------------------------------------------- Please select an input device id to record from: 1 Selected device: MacBook Pro Microphone ╔══════════════════════════════════════════════════════════════════════════════════╗ ║ Voiceover: ║ ║ here is the first text it is really long and it goes on and on forever and ever ║ ║ and ever. ║ ╚══════════════════════════════════════════════════════════════════════════════════╝ Press and hold the 'r' key to begin recording Wait for 1 second, then start speaking. Wait for at least 1 second after you finish speaking. This is to eliminate any sounds that may come from your keyboard. The silence at the beginning and end will be trimmed automatically. You can adjust this setting using the `trim_silence_threshold` argument. These instructions are only shown once. Release the 'r' key to end recording This process is not trusted! Input event monitoring will not be possible until it is added to accessibility clients. rStream active: True start Stream libc++abi: terminating zsh: abort manim -pql manim-vo.py --disable_caching ```

System specifications

System Details - macOS Venture 13.4 (M1 mac) - Python version (`python/py/python3 --version`): 3.9.12 - Installed modules (provide output from `pip list`): ``` aiohttp 3.8.1 aiosignal 1.2.0 alabaster 0.7.12 anaconda-client 1.9.0 anaconda-navigator 2.2.0 anaconda-project 0.10.2 anyio 3.5.0 appdirs 1.4.4 applaunchservices 0.2.1 appnope 0.1.2 appscript 1.1.2 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0 arrow 1.2.2 astroid 2.6.6 astropy 5.0.4 asttokens 2.0.5 async-timeout 4.0.1 atomicwrites 1.4.0 attrs 21.4.0 Automat 20.2.0 autopep8 1.6.0 azure-cognitiveservices-speech 1.31.0 Babel 2.9.1 backcall 0.2.0 backports.functools-lru-cache 1.6.4 backports.tempfile 1.0 backports.weakref 1.0.post1 bcrypt 3.2.0 beautifulsoup4 4.11.1 binaryornot 0.4.4 bitarray 2.4.1 bkcharts 0.2 black 19.10b0 bleach 4.1.0 bokeh 2.4.2 boto3 1.21.32 botocore 1.24.32 Bottleneck 1.3.4 brotlipy 0.7.0 cachetools 4.2.2 certifi 2021.10.8 cffi 1.15.0 chardet 4.0.0 charset-normalizer 2.0.4 click 8.0.4 click-default-group 1.2.2 cloudpickle 2.0.0 cloup 0.13.1 clyent 1.2.2 colorama 0.4.4 colorcet 2.0.6 colour 0.1.5 commonmark 0.9.1 conda 22.11.1 conda-build 3.21.8 conda-content-trust 0+unknown conda-pack 0.6.0 conda-package-handling 1.8.1 conda-repo-cli 1.0.4 conda-token 0.3.0 conda-verify 3.4.2 constantly 15.1.0 cookiecutter 1.7.3 cryptography 3.4.8 cssselect 1.1.0 cycler 0.11.0 Cython 0.29.28 cytoolz 0.11.0 daal4py 2021.5.0 dask 2022.2.1 datashader 0.13.0 datashape 0.5.4 debugpy 1.5.1 decorator 5.1.1 defusedxml 0.7.1 diff-match-patch 20200713 distributed 2022.2.1 docutils 0.17.1 entrypoints 0.4 et-xmlfile 1.1.0 executing 0.8.3 fastjsonschema 2.15.1 ffmpeg-python 0.2.0 filelock 3.6.0 flake8 3.9.2 Flask 1.1.2 fonttools 4.25.0 frozenlist 1.2.0 fsspec 2022.2.0 future 0.18.2 gensim 4.1.2 glcontext 2.3.6 glob2 0.7 gmpy2 2.1.2 google-api-core 1.25.1 google-auth 1.33.0 google-cloud-core 1.7.1 google-cloud-storage 1.31.0 google-crc32c 1.1.2 google-resumable-media 1.3.1 googleapis-common-protos 1.53.0 greenlet 1.1.1 grpcio 1.42.0 gTTS 2.3.2 h5py 3.6.0 HeapDict 1.0.1 holoviews 1.14.8 huggingface-hub 0.16.4 hvplot 0.7.3 hyperlink 21.0.0 idna 3.3 imagecodecs 2021.8.26 imageio 2.9.0 imagesize 1.3.0 importlib-metadata 4.11.3 incremental 21.3.0 inflection 0.5.1 iniconfig 1.1.1 intake 0.6.5 intervaltree 3.1.0 ipykernel 6.9.1 ipython 8.2.0 ipython-genutils 0.2.0 ipywidgets 7.6.5 isort 5.9.3 isosurfaces 0.1.0 itemadapter 0.3.0 itemloaders 1.0.4 itsdangerous 2.0.1 jdcal 1.4.1 jedi 0.18.1 Jinja2 2.11.3 jinja2-time 0.2.0 jmespath 0.10.0 joblib 1.1.0 json5 0.9.6 jsonschema 4.4.0 jupyter 1.0.0 jupyter-client 6.1.12 jupyter-console 6.4.0 jupyter-core 4.9.2 jupyter-server 1.13.5 jupyterlab 3.3.2 jupyterlab-pygments 0.1.2 jupyterlab-server 2.10.3 jupyterlab-widgets 1.0.0 keyring 23.4.0 kiwisolver 1.3.2 lazy-object-proxy 1.6.0 libarchive-c 2.9 llvmlite 0.38.0 locket 0.2.1 lxml 4.8.0 manim 0.17.3 manim-voiceover 0.3.4 ManimPango 0.4.1 mapbox-earcut 1.0.1 Markdown 3.3.4 markdown-it-py 3.0.0 MarkupSafe 2.0.1 matplotlib 3.5.1 matplotlib-inline 0.1.2 mccabe 0.6.1 mdurl 0.1.2 mistune 0.8.4 mkl-fft 1.3.1 mkl-random 1.2.2 mkl-service 2.4.0 mock 4.0.3 moderngl 5.6.4 moderngl-window 2.4.1 more-itertools 10.1.0 mpmath 1.2.1 msgpack 1.0.2 multidict 5.2.0 multipledispatch 0.6.0 munkres 1.1.4 mutagen 1.46.0 mypy-extensions 0.4.3 navigator-updater 0.2.1 nbclassic 0.3.5 nbclient 0.5.13 nbconvert 6.4.4 nbformat 5.3.0 nest-asyncio 1.5.5 networkx 2.7.1 nltk 3.7 nose 1.3.7 notebook 6.4.8 numba 0.55.1 numexpr 2.8.1 numpy 1.21.6 numpydoc 1.2 olefile 0.46 openai-whisper 20230314 openpyxl 3.0.9 packaging 21.3 pandas 1.4.2 pandocfilters 1.5.0 panel 0.13.0 param 1.12.0 parsel 1.6.0 parso 0.8.3 partd 1.2.0 pathspec 0.7.0 patsy 0.5.2 pep8 1.7.1 pexpect 4.8.0 pickleshare 0.7.5 Pillow 9.2.0 pip 23.2.1 pkginfo 1.8.2 plotly 5.6.0 pluggy 1.0.0 poyo 0.5.0 prometheus-client 0.13.1 prompt-toolkit 3.0.20 Protego 0.1.16 protobuf 3.19.1 psutil 5.8.0 ptyprocess 0.7.0 pure-eval 0.2.2 py 1.11.0 pyasn1 0.4.8 pyasn1-modules 0.2.8 PyAudio 0.2.11 pycairo 1.24.0 pycodestyle 2.7.0 pycosat 0.6.3 pycparser 2.21 pyct 0.4.6 pycurl 7.44.1 PyDispatcher 2.0.5 pydocstyle 6.1.1 pydub 0.25.1 pyerfa 2.0.0 pyflakes 2.3.1 pyglet 1.5.26 Pygments 2.11.2 PyHamcrest 2.0.2 PyJWT 2.1.0 pylint 2.9.6 pyls-spyder 0.4.0 pynput 1.7.6 pyobjc-core 9.2 pyobjc-framework-ApplicationServices 9.2 pyobjc-framework-Cocoa 9.2 pyobjc-framework-Quartz 9.2 pyodbc 4.0.32 pyOpenSSL 21.0.0 pyparsing 3.0.4 pyrr 0.10.3 pyrsistent 0.18.0 PySocks 1.7.1 pytest 7.1.1 python-dateutil 2.8.2 python-dotenv 0.21.1 python-lsp-black 1.0.0 python-lsp-jsonrpc 1.0.0 python-lsp-server 1.2.4 python-slugify 8.0.1 python-snappy 0.6.0 pytz 2021.3 pyviz-comms 2.0.2 PyWavelets 1.3.0 PyYAML 6.0 pyzmq 22.3.0 QDarkStyle 3.0.2 qstylizer 0.1.10 QtAwesome 1.0.3 qtconsole 5.3.0 QtPy 2.0.1 queuelib 1.5.0 regex 2022.3.15 requests 2.27.1 requests-file 1.5.1 rich 12.5.1 rope 0.22.0 rsa 4.7.2 Rtree 0.9.7 ruamel.yaml 0.17.32 ruamel.yaml.clib 0.2.7 ruamel-yaml-conda 0.15.100 s3transfer 0.5.0 safetensors 0.3.2 scikit-image 0.19.2 scikit-learn 1.0.2 scikit-learn-intelex 2021.20220215.132722 scipy 1.11.1 Scrapy 2.6.1 screeninfo 0.8.1 seaborn 0.11.2 Send2Trash 1.8.0 service-identity 18.1.0 setuptools 68.0.0 sip 4.19.13 six 1.16.0 skia-pathops 0.7.2 smart-open 5.1.0 sniffio 1.2.0 snowballstemmer 2.2.0 sortedcollections 2.1.0 sortedcontainers 2.4.0 soupsieve 2.3.1 sox 1.4.1 Sphinx 4.4.0 sphinxcontrib-applehelp 1.0.2 sphinxcontrib-devhelp 1.0.2 sphinxcontrib-htmlhelp 2.0.0 sphinxcontrib-jsmath 1.0.1 sphinxcontrib-qthelp 1.0.3 sphinxcontrib-serializinghtml 1.1.5 spyder 5.1.5 spyder-kernels 2.1.3 SQLAlchemy 1.4.32 srt 3.5.2 stable-ts 2.8.1 stack-data 0.2.0 statsmodels 0.13.2 svgelements 1.9.5 sympy 1.10.1 tables 3.6.1 tabulate 0.8.9 TBB 0.2 tblib 1.7.0 tenacity 8.0.1 terminado 0.13.1 testpath 0.5.0 text-unidecode 1.3 textdistance 4.2.1 threadpoolctl 2.2.0 three-merge 0.1.1 tifffile 2021.7.2 tiktoken 0.3.1 tinycss 0.4 tldextract 3.2.0 tokenizers 0.13.3 toml 0.10.2 tomli 1.2.2 toolz 0.11.2 torch 2.0.1 torchaudio 2.0.2 tornado 6.1 tqdm 4.64.0 traitlets 5.1.1 transformers 4.31.0 Twisted 22.2.0 typed-ast 1.4.3 typing_extensions 4.1.1 ujson 5.1.0 Unidecode 1.2.0 urllib3 1.26.9 w3lib 1.21.0 watchdog 2.1.6 wcwidth 0.2.5 webencodings 0.5.1 websocket-client 0.58.0 Werkzeug 2.0.3 wheel 0.41.1 widgetsnbextension 3.5.2 wrapt 1.12.1 wurlitzer 3.0.2 xarray 0.20.1 xlrd 2.0.1 XlsxWriter 3.0.3 xlwings 0.24.9 yapf 0.31.0 yarl 1.6.3 zict 2.0.0 zipp 3.7.0 zope.interface 5.4.0 ```
LaTeX details + LaTeX distribution (e.g. TeX Live 2020): + Installed LaTeX packages:
FFMPEG Output of `ffmpeg -version`: ``` built with Apple clang version 14.0.3 (clang-1403.0.22.14.1) configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon libavutil 58. 2.100 / 58. 2.100 libavcodec 60. 3.100 / 60. 3.100 libavformat 60. 3.100 / 60. 3.100 libavdevice 60. 1.100 / 60. 1.100 libavfilter 9. 3.100 / 9. 3.100 libswscale 7. 1.100 / 7. 1.100 libswresample 4. 10.100 / 4. 10.100 libpostproc 57. 1.100 / 57. 1.100 ```

Additional comments

The only error it throws is "libc++abi: terminating". Any help or ideas to try and get it to work are much appreciated!

osolmaz commented 9 months ago

At which stage is the error triggered? Can you post the output from your terminal during rendering one of the examples?

Does Manim work properly in the absence of this plugin? If yes, my guess is one of the dependencies like SoX or PortAudio. See here: https://voiceover.manim.community/en/stable/installation.html

Maybe this hint would help