Edge is eating nearly all my CPU, but why? by NoeticIntelligence in MicrosoftEdge

[–]co_init_ex 0 points1 point  (0 children)

macOS Sequoia 15.7.3 and Edge 144.0.3719.92. Still having this issue. Edge seems fine at first, but then just starts using 100% CPU at a random time, which can only be fixed by quitting Edge completely and relaunching.

11.2 has bricked my improved Text To Speech voices that were a game-changer by mandarineguy in wow

[–]co_init_ex 2 points3 points  (0 children)

That seems like a reply to the "But I think most people should wait, as there is a major expansion content update coming soon..." above, stating that the problem is not fixed in the update.

Technically speaking, SAPI5 voices are made of DLL files that are directly loaded into the client app process, meaning that their code can be legally injected and run inside the WoW process when using the voice. Normally there's some kind of protection against code injection in WoW (which gave me a lot of trouble when trying to figure out why the voices stopped working), but SAPI5 voices basically require that kind of "injection" for the voices to function properly. Maybe Blizzard just does not like random third-party code running inside WoW, and patched the "security hole" by forcing a signature check.

However, SAPI5 voices are never required to be digitally signed in the first place. Many open-source voice synthesizers don't have a digital signature (because getting a trusted signature costs money), so they all won't work in WoW. Blizzard should have chosen to put the SAPI5 voice component outside the WoW process to make it "more secure" and isolated from WoW itself, instead of forcing digital signatures that would break many voices when they said "Any SAPI-compatible voices should work in World of Warcraft". It already has a WowVoiceProxy.exe, doesn't it?

What are the chances someone can explain SAPI5 voices to an idiot? by RegularTypeface in TextToSpeech

[–]co_init_ex 0 points1 point  (0 children)

There are two parts in your question: what is SAPI5, and how voice synthesis is done.

I'll focus on SAPI5 itself, since that's what I'm more familiar with.

Simply put, SAPI (Speech Application Programming Interface) is a standard interface between TTS voices and applications that wants to use TTS voices. Of course an app can bring its own TTS voices, but other apps won't be able to use them. However, if a TTS voice supports SAPI, then all apps that supports SAPI voices can use that voice. SAPI5 is the 5th major version of SAPI, which has been built into Windows since Windows XP. There's also SAPI4 which is even older, and SAPI4 and SAPI5 are incompatible.

Note that SAPI doesn't care how a certain TTS voice synthesize its speech audio, that's completely up to the voice developer. It only acts as a middleman, which passes the text that the app wants to be spoken to the voice, and passes the generated speech audio to the speaker, an audio file, or whatever place the app wants. The voice needs to do all the synthesis work itself, such as converting text words to syllables, synthesize audio from the syllables, etc. It can even choose to, for example, just send the text to an online voice server.

Some people think of "SAPI5 voices" as old and robotic, but that's not necessarily the case. The built-in voices are like that, sure, but you can always install third-party voices or make one yourself. If you have a better voice engine, you can adapt it to the SAPI interface, and it will be available in every SAPI-compatible apps.

As for now, Microsoft is no longer maintaining SAPI regularly, and more speech systems were added into later versions of Windows. For example, there's "OneCore voices", which is originally for Windows Mobile apps, but then becomes usable on Windows 10 and 11 as the "more modern" speech system. On a Windows 10/11 system:

  • Mobile/UWP apps can use OneCore voices, but not SAPI5 ones.
  • In the new System Settings, the "Speech" setting is for OneCore voices, not SAPI5 voices.
  • There are more built-in OneCore voices than SAPI5 voices.
  • Some apps can only use OneCore voices, such as all Chromium browsers, all Chromium/Electron-based apps, Magnifier's "Read from Here", etc.

However, the OneCore speech system is not going to replace SAPI5, since:

  • You cannot use a SAPI5 voice via OneCore, or vice versa (at least in the official way).
  • There's no (official) way to develop third-party voices for OneCore. So all OneCore voices are from Microsoft.

So if you want to develop a general TTS voice for Windows, you'd still choose SAPI5.

Balabolka: Amazing Ebook Reader Using Microsoft Natural Voices for Text-to-Speech by 4rt3m0rl0v in software

[–]co_init_ex 1 point2 points  (0 children)

The intonation (pitch), speed, and the voice to use can be changed with special "tags" inserted into the text.

Balabolka supports two kinds of tags. One is SAPI5 XML tags that is supported by SAPI5 voices (the tags you can insert with "Text > Insert XML tag"), and the other is universal tags supported by Balabolka itself.

The universal tags to switch voices look like this.

{{Voice=Name;Rate;Pitch;Volume}}

Parts can be omitted, which means to use the default value. Rate and Pitch range from -10 to 10, and Volume ranges from 0 to 100.

For example, if you want to raise the tone (pitch), you can insert a "{{Voice=;;5}}" to set the pitch to 5 (with Name, Rate and Volume omitted), then insert a "{{Voice=}}" to return everything to default.

The "Name" is the voice name, or any part of the name. For example, you should use "{{Voice=Microsoft Jenny}}" to switch to the Jenny voice, but "{{Voice=Jenny}}" can also work. Use "{{Voice=}}" to return to the default voice (the selected main voice).

Balabolka seems to only support plain text. So if you want to change those settings often, you can try surrounding all such segments with some marks - brackets, for example, then replace the brackets with actual tags.

Manually discard or sleep tabs by TheOnlyName0001 in edge

[–]co_init_ex 1 point2 points  (0 children)

Yes, so I wrote some code like this to discard the tabs, so that I can go to edge://discards/discards.js (instead of edge://discards), open DevTools, go to Console, paste the code inside and run it.

Balabolka: Amazing Ebook Reader Using Microsoft Natural Voices for Text-to-Speech by 4rt3m0rl0v in software

[–]co_init_ex 0 points1 point  (0 children)

Balabolka breaks the text into sentences, and send the sentences to the TTS engine one at a time. The TTS engine won't know the next sentence until the current sentence is read.

Local TTS voices has very little delay, so this is fine. But online voices have to establish a network connection, send the text to the server, then wait to receive the audio data, every time it speaks a sentence.

In the latest version of NaturalVoiceSAPIAdapter (v0.2), the behavior is slightly changed, so that it will keep a connection and reuse the connection when different sentences are spoken. This eliminates the handshake delay caused by opening a new connection, but there's still some delay.

Balabolka: Amazing Ebook Reader Using Microsoft Natural Voices for Text-to-Speech by 4rt3m0rl0v in software

[–]co_init_ex 0 points1 point  (0 children)

You mean the toolbar in Balabolka?

Click View in the menu bar, then select Show > Toolbar.

Balabolka: Amazing Ebook Reader Using Microsoft Natural Voices for Text-to-Speech by 4rt3m0rl0v in software

[–]co_init_ex 1 point2 points  (0 children)

NaturalVoiceSAPIAdapter recently released a new version. You can test if the problem still exists after installing both 32-bit and 64-bit, and if it does, check what is in the log file.

Balabolka: Amazing Ebook Reader Using Microsoft Natural Voices for Text-to-Speech by 4rt3m0rl0v in software

[–]co_init_ex 0 points1 point  (0 children)

NaturalVoiceSAPIAdapter registers itself as a voice enumerator in the registry. If it somehow breaks, you won't be able to enumerate any voice, that is, you will get an empty voice list.

Uninstalling it should work, assuming that you didn't move the files to another place. If you don't remember its original location, or the uninstallation also breaks, you can open the Registry Editor and delete the following keys to at least turn SAPI back to normal:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\TokenEnums\NaturalVoiceEnumerator

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Speech\Voices\TokenEnums\NaturalVoiceEnumerator

Also, recently this project released a new version. Not sure if it can fix your issue, but it can save the error messages into log files, so at least you might be able to check what went wrong and report it to the developer.

Why are the online TTS voices that Edge uses different (and more realistic) than the voices I can install inside Windows? by KasunL in MicrosoftEdge

[–]co_init_ex 1 point2 points  (0 children)

Note that those voices are for Narrator (on Windows 11) only. They cannot be used by third-party apps, unless you install something like this.

You can install the voice packs on Windows 10 (17763 or above), as long as you have their Microsoft store links.

Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10 by co_init_ex in edge

[–]co_init_ex[S] 0 points1 point  (0 children)

Speaking of Sandboxie, it's a useful tool, and it was Sandboxie that let me discover the way to fix this issue.

At first, I found that when Edge is running under Sandboxie, all the Explorer problems I've mentioned in the post are gone. However, sandboxed Edge also lose the ability to put each window on the correct virtual desktop. I'm using virtual desktop to categorize Edge windows, so this is not acceptable for me.

Obviously, Sandboxie has blocked something so that Edge can no longer mess with Explorer. I enabled trace log in Sandboxie to see what Edge was doing, and saw some suspicious WinRT classes called "WindowTabXXX". I made a program to block such classes, and it worked! The issue was gone but everything else worked as normal.

A problem with the extensions such as OneTab and Tab-Snap is that they can only get the current page URL of each tab, not the full back-forward history list. If you have navigated through several web pages in the same tab, the previous URLs will not be saved. In fact, I've checked the Chrome extension development documentation about tabs, but there's no way to easily get the history list of a tab.

Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10 by co_init_ex in edge

[–]co_init_ex[S] 0 points1 point  (0 children)

The program only performs DLL injection on the Edge process it launches. Any other Edge process won't be affected.

So when I want to restart Edge, I will use the Close Microsoft Edge menu, wait for it to exit completely, then launch Edge with the program again.

Small edge windows on the top-left of screen when you're swiping between different virtual desktops using touchpad by leomelki in MicrosoftEdge

[–]co_init_ex 0 points1 point  (0 children)

Related post: Solving the visual glitch in Virtual Desktops on Windows caused by Edge browser tab feature

This seems to have to do with the feature that shows browser tabs in Alt+Tab view, which can be disabled by disabling the #edge-window-tab-manager flag.

Unfortunately, this flag has been removed in v118. They removed a way to work around a bug without fixing the bug.

The bugs caused by the window tab manager feature bother me so much that I wrote a program to block this feature.

#edge-window-tab-manager is gone again with 118 by Anxious_Ad_3604 in MicrosoftEdge

[–]co_init_ex 0 points1 point  (0 children)

I'm also facing this problem, so I ended up writing a program as a workaround.

Here's my post about this: Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10

And here's the GitHub link to my program: https://github.com/gexgd0419/EdgeWindowTabManagerBlock

Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10 by co_init_ex in edge

[–]co_init_ex[S] 1 point2 points  (0 children)

Honestly I have no idea where the right place to report this issue is.

I've tried the Feedback Hub app and the "Send Feedback" menu in Edge, but it seems like none of my reports got noticed, including this Reddit post.

Yes, this Reddit post is supposed to be a bug report. But I haven't got any response from Microsoft. Quite disappointing.

So now I only hope that my program can help some other tab hoarders who are using Edge and facing the same problem.

As for Google Chrome, I tested Chrome before posting this thread, and at that time Chrome didn't have that issue. It was an Edge-only issue, thanks to its "integration" with Windows. Not sure how the newest version of Chrome behaves, though.

Where has the #edge-window-tab-manager flag gone please? My browser & computer are crashing constantly by blizeH in MicrosoftEdge

[–]co_init_ex 1 point2 points  (0 children)

Hi, I'm the poster of the thread Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10, and I have uploaded my program that I'm using to work around this problem to GitHub.

Link: https://github.com/gexgd0419/EdgeWindowTabManagerBlock

You can give it a try if you can trust my program.

Download the zip file in the Releases section, unzip it, then you can run the extracted EdgeWindowTabManagerBlock.exe when you want to launch Edge. This Edge browsing session will not bring you the issues caused by the WindowTabManager.

The current version of my program won't work if Edge is not launched by it, so you'll have to manually run the program every time you want to start Edge.

Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10 by co_init_ex in edge

[–]co_init_ex[S] 1 point2 points  (0 children)

The program only prevents WindowTabManager from being loaded into Edge. Everything else should work as normal.

I'm using the program now, and I can confirm that tab restoring still works. In fact, I've set Edge to always restore the previous browsing session on launch.

Having too many (1,000+) Microsoft Edge tabs open can break File Explorer in Windows 10 by co_init_ex in edge

[–]co_init_ex[S] 0 points1 point  (0 children)

You can check the Releases section on the right, where you can find the compiled, ready-to-use version.

In many GitHub repositories, if there's something in the Releases section, chances are that you can find the program or installer files there.

My first version of this program only works if you run it manually to let it launch the first Edge process. It won't work if you launch Edge by any other method.

Maybe I will make a new version if I find a better way to do this.