Damien Elmes
52642d693b
drop PyAudio support
...
I do not recall anyone reporting that it worked better than the Qt
implementation for them, and the lack of recent wheels on PyPI is a pain.
We can always add it back in the future if enough people come out of
the woodwork to report they were using it.
2021-10-15 13:15:16 +10:00
Damien Elmes
7962c8107f
qt recording support for qt6
...
+ fix inefficient bytes concatenation
2021-10-15 12:57:19 +10:00
Damien Elmes
a7812dedc0
switch to new-style PyQt scoped enums and Qt6
...
The enum changes should work on PyQt 5.x, and are required in PyQt 6.x.
They are not supported by the PyQt5 typings however, so we need to run
our tests with PyQt6.
2021-10-15 12:57:19 +10:00
Damien Elmes
4d0a915610
move QtAudioInputRecorder into separate PyQt5-only file
...
New API required for PyQt6.
2021-10-15 10:47:53 +10:00
Damien Elmes
e357dbf6b3
use Qt search path instead of resource system
...
Means URLs like :/icons/foo.jpg should become icons:foo.jpg
This is part of the prep work for a PyQt6 update. PyQt6 has dropped
pyrcc, so we can longer generate the icons_qrc.py file we did previously.
Qt Designer expects us to use the resource system, so we continue to
generate the icons.qrc file to make editing the UI files easier. But at
runtime, we no longer use that file.
2021-10-12 16:17:08 +10:00
Damien Elmes
b9251290ca
run pyupgrade over codebase [python upgrade required]
...
This adds Python 3.9 and 3.10 typing syntax to files that import
attributions from __future___. Python 3.9 should be able to cope with
the 3.10 syntax, but Python 3.8 will no longer work.
On Windows/Mac, install the latest Python 3.9 version from python.org.
There are currently no orjson wheels for Python 3.10 on Windows/Mac,
which will break the build unless you have Rust installed separately.
On Linux, modern distros should have Python 3.9 available already. If
you're on an older distro, you'll need to build Python from source first.
2021-10-04 15:05:48 +10:00
Damien Elmes
2a2469e7a2
Revert "Revert "Merge pull request #1364 from evandroforks/fix_unclosed_python_file""
...
This reverts commit a2ac197fd786b31880c8334735b4a2d6bd76b0bd.
Looks like it wasn't the cause of the previously reported problem:
https://forums.ankiweb.net/t/2-1-48-tts-problem/13587/2
2021-09-27 18:43:16 +10:00
Damien Elmes
cdad1efdcf
Revert "Merge pull request #1364 from evandroforks/fix_unclosed_python_file"
...
This reverts commit c05475a49e54ed7a56bc635e5e5528334d4ba6ac.
Revert "possible fix for reported audio issues"
This reverts commit f00f7f099f
.
Reverting in case https://forums.ankiweb.net/t/2-1-48-release-candidate/13268/10
is related to this change. If the issue persists, we'll know this was
not the cause.
2021-09-20 21:39:15 +10:00
Damien Elmes
f00f7f099f
possible fix for reported audio issues
...
https://forums.ankiweb.net/t/2-1-48-release-candidate/13268/6
This is the only area of the sound code that has changed since 2.1.47
2021-09-16 10:27:37 +10:00
evandrocoan
c7cff516e4
Add clone stdin to another _process deletion
2021-09-09 18:36:21 -03:00
evandrocoan
133e22dbe4
Fix ResourceWarning: unclosed file <_io.BufferedWriter name=5>
...
https://forums.ankiweb.net/t/aqt-sound-py-resourcewarning-unclosed-file-io-bufferedwriter-name-5/13070
2021-09-08 21:02:12 -03:00
Damien Elmes
b9d42af423
add a small .wait() after terminating player process
...
Avoids python3.8/subprocess.py:942:
ResourceWarning: subprocess 90387 is still running
_warn("subprocess %s is still running" % self.pid,
2021-08-19 10:33:56 +10:00
kelciour
c950745ab4
keep the internal mpv playlist from growing on
...
https://forums.ankiweb.net/t/audio-tracks-get-clipped-at-the-end/10289/5
2021-06-10 11:28:57 +03:00
kelciour
63dc301ef0
use 'cycle' command to toggle pause
2021-06-07 01:54:07 +03:00
kelciour
c352314ed8
fix audio is paused unusual
...
closes #1164
2021-06-07 01:09:44 +03:00
Damien Elmes
be9bbf2157
catch all recording errors; mention permission
...
https://forums.ankiweb.net/t/i-have-an-error-when-i-try-to-record-of-audio/10483
2021-06-02 12:20:40 +10:00
Damien Elmes
bcb1a2a329
fix 'lame missing' message not being shown
...
https://forums.ankiweb.net/t/cant-use-voice-recorder/8753
2021-03-29 19:52:30 +10:00
Damien Elmes
b7587cb8d2
update TR references that contain arguments
2021-03-26 14:21:04 +10:00
Damien Elmes
0c338bfd53
update no-arg tr references in qt/
2021-03-26 13:48:26 +10:00
Damien Elmes
0c59c8b591
fix a bunch of qt typing issues uncovered by the following commit
2021-03-19 19:45:21 +10:00
Damien Elmes
88c002f4eb
convert qt strings to f-strings with flynt
...
Also revealed an incorrect type def in editor.py that mypy wasn't
noticing before :-(
2021-02-11 10:09:06 +10:00
Damien Elmes
6426edb0ac
more typing updates
2021-02-02 23:31:55 +10:00
Damien Elmes
a56b09b987
add a bunch of return types
2021-02-01 23:53:23 +10:00
Damien Elmes
322788133b
tooltip() instead of print() when no tts tag matches
...
Can help with debugging user error like an incorrectly-typed language
code. Don't ask me how I know. :-)
2021-01-26 20:37:24 +10:00
Kyle Mills
a0dc33c0e8
typo
2021-01-10 07:18:08 -08:00
Damien Elmes
b30b7c3073
fix qt/ pylints
2021-01-07 16:21:50 +10:00
Damien Elmes
94064b8230
convert setWindowFlags call into helper, and fix invalid variables
...
"type: ignore" was masking the invalid references to self in places
like showText()
2021-01-07 14:24:49 +10:00
BlueGreenMagick
6224658c0d
remove context help button
2021-01-06 22:15:48 +09:00
Damien Elmes
7d1c8c29f9
add a small delay before terminating recording
...
https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824/12
2020-12-21 16:37:28 +10:00
Damien Elmes
019a65efc1
drop QtRecorder driver; rename existing
2020-12-21 15:02:22 +10:00
Ryan Aird
a30064d5e9
Make RT import statement conditional, fix formatting, ignore WinRT for type checking
2020-12-20 19:43:09 -06:00
Ryan Aird
9a0b112a0f
Lower default rank for non-RT voices and restrict to Windows 10 October 2018 or greater
2020-12-19 20:10:23 -06:00
Ryan Aird
56703e5f3a
WinRT TTS API support
2020-12-19 19:29:34 -06:00
Damien Elmes
e7d9056acd
write .wav in background
2020-12-18 19:24:53 +10:00
Damien Elmes
93eccd183f
leave iodevice alone after calling .stop()
...
Docs say it should not be accessed, and it fails on Linux.
2020-12-18 19:14:24 +10:00
Damien Elmes
dc5ce3b9a2
experiment with lower-level QAudioInput
...
Allows us to discard the start of the recording like PyAudio, instead
of just muting it.
2020-12-18 18:59:10 +10:00
Damien Elmes
643e875342
add back pyaudio as an optional alternative
2020-12-18 16:52:00 +10:00
Damien Elmes
cd31780668
explicitly set sample rate and channels
...
Windows sounds awful by default on a machine here.
2020-12-16 20:18:13 +10:00
Damien Elmes
3a250f5238
formatting & mypy fix
2020-12-16 19:51:46 +10:00
Damien Elmes
1114ca75df
update recording time more frequently; remove print statement
2020-12-16 19:45:08 +10:00
Damien Elmes
ecb7c1482f
use QtMultimedia for recording instead of PyAudio
...
The unmute-on-first-duration-change approach is to try to prevent
clicks/pops that can happen at the start of recordings. If it doesn't
solve the problem, we may need to drop down to the lower-level
QAudioInput().
Closes https://github.com/ankitects/help-wanted/issues/23
May fix https://forums.ankiweb.net/t/anki-crashes-periodically-after-clicking-record-audio-button/5824 ,
which I suspect was caused by processEvents()
2020-12-16 19:33:25 +10:00
Damien Elmes
ffa26fe4bc
fix remaining _() references; remove unused imports
2020-11-18 12:43:46 +10:00
Damien Elmes
2453e5c488
update temporary val="%s" references to standard ftl
2020-11-17 22:00:44 +10:00
Damien Elmes
6418993840
merge bulk of qt/ - designer files still to do
2020-11-17 17:42:43 +10:00
ianki
c2901e4859
Add hooks for filtering media.
2020-11-09 02:12:23 -08:00
Damien Elmes
37695da713
fix missing QAudioDeviceInfo on macOS
2020-11-06 12:01:37 +10:00
Piotr Kubowicz
ed11f8e9d6
Add .opus as an audio extension
...
Wikimedia Commons has pronunciation recordings with .opus extension.
Anki is able to play such files, but until now adding them required
changing the extension to .ogg or some other supported one.
Also sort the audio extensions list.
2020-10-10 16:28:40 +02:00
kelciour
e2d98ebc26
Separate player for videos on Windows
...
https://forums.ankiweb.net/t/anki-crashes-because-of-mpv/3359/13
2020-10-03 22:53:17 +03:00
kelciour
72ea605050
Revert back to listening for idle callback
...
https://forums.ankiweb.net/t/anki-2-1-33-linux-audio-stops-working/3023
2020-09-16 09:25:18 +03:00
Damien Elmes
b47654fed7
fix formatting
2020-08-21 11:45:14 +10:00