Want to make your text "speak" in a natural and realistic voice that rivals human speech? Microsoft Edge browser's built-in "Read Aloud" feature can do just that! It supports dozens of languages and various voices, and the key is that it's completely free.
The open-source project edge-tts
, based on this feature, is also very popular, and many free text-to-speech tools are developed based on it. However, as the number of users increases, Microsoft has limited the rate of dubbing requests. Now, even with slightly higher usage, you will encounter a 403 error, preventing you from continuing to synthesize speech.
How to avoid or reduce 403 errors?
Since this is a Microsoft-provided API service, not an open-source project, local deployment is not feasible. In any case, speech synthesis must connect to Microsoft's servers.
Deploy to Cloudflare: This can reduce the frequency of 403 errors, but it cannot be completely avoided.
- If you are interested in this, you can refer to this tutorial: https://pyvideotrans.com/edgettscf
Use a dynamic IP proxy: Automatically changing the IP address every few minutes can effectively avoid 403 errors. The stability depends on the quality of the dynamic IP. If the reliability of the dynamic IP is 97%, then the availability of
edge-tts
can also reach 97%.- This seems to be the best solution currently. Of course, high-quality dynamic IP proxy services usually require payment. Free proxies are often of poor quality and cannot meet the needs.
So, how do you configure a dynamic IP proxy, and what services are worth recommending?
Dynamic IPs cannot guarantee 100% availability, the actual availability may only be between 85% and 95%.
Here, I will use Proxy302 as an example, which I have personally used. It provides foreign residential IPs that switch approximately every 5 minutes and are billed by traffic (US$1.5/GB).
Here are the detailed opening and usage steps:
I. Register an Account
Visit 302AI to register an account. This account and balance are shared with Proxy302. The reason why it is recommended to register from 302AI is that its minimum top-up amount is US$5, while Proxy302's minimum top-up amount is US$20. For the first try, it is recommended to top up a small amount first to reduce the risk.
Open this link to register: https://gpt302.saaslink.net/teRK8Y Register an account using your email address and complete email verification.
Top up your balance: Top up as shown in the figure below, with a minimum top-up of US$5.
II. Log in to Proxy302.com
After the top-up is complete, use the same account and password to log in to https://dash.proxy302.com/login
You can see the balance after logging in.
III. Create a Dynamic IP Proxy Address
Click Dynamic IP (Short-term) --> Pay-as-you-go by Traffic on the left navigation bar as shown in the figure above.
Then click General Proxy Generation --> Generate General Proxy in sequence, as shown in the figure below.
- After generation, you can see the newly generated proxy address in Existing Proxy --> Purchased Proxy below. Click the help button behind the address to set the country to which the proxy IP belongs and copy the proxy address.
- As shown in the figure below, select
United States (US)
in the country, click Generate RandomSession
, and copy the address at the bottom.
Important Reminder: Be sure to click the
help
button to copy the proxy address each time you need to copy it.
IV. Apply the Proxy Address to Video Translation Software
You must first upgrade the video translation software to version v3.50.
In the same directory as the
sp.exe
of thepyVideoTrans
video translation software (or in the directory wheresp.py
is located if it is a source code deployment), create a plain text file namededgetts.txt
.Paste the proxy address copied in the previous step into the
edgetts.txt
file and save it, as shown in the figure below.
Now, you can try using edge-tts
for speech synthesis.
Billed by traffic, it is roughly estimated that 1 RMB can synthesize 3-5 hours of speech (retries due to errors will increase the cost, please test the actual cost yourself, this is for reference only).