Python combat --- création de romans audio exclusifs (appel à l'interface de synthèse vocale Baidu)

Cette fois, l'objectif est d'utiliser l'interface d'intelligence artificielle de Baidu Cloud pour réaliser une conversion texte-parole en temps réel et convertir le nouveau texte en parole.

Baidu Cloud Interface Call

L'interface de Baidu est très conviviale pour nos utilisateurs ordinaires. Beaucoup de ses fonctions sont gratuites, et nous pouvons appeler cette interface cinq mille fois par jour gratuitement, ce qui nous convient parfaitement pour jouer avec ces fonctions.

Enregistrer un compte Cloud Baidu

Ouvrez d'abord l' adresse d' interface du module de synthèse vocale Baidu Cloud.
Après avoir ouvert l'URL, cliquez sur l'option "Utiliser maintenant", puis l'interface de l'option de connexion apparaîtra. Si vous n'avez pas de compte, vous devez d'abord enregistrer un compte cloud Baidu. La méthode d'enregistrement est très simple. Je n'entrerai pas dans les détails. Après
vous être connecté , j'entrerai automatiquement dans l'interface de la console, car nous n'avons pas encore créé d'application.

Cliquez sur la liste des applications, créez une application, l'élément de configuration de l'application pop-up, dont le contenu peut être rempli à volonté

Remplissez, cliquez pour créer immédiatement, revenez à la liste des applications, à ce moment vous pouvez trouver un élément d'application supplémentaire sous mon application

Utiliser l'interface

Installez le module

Les modules doivent être installés pour utiliser cette interface dans l'environnement Python

pip install baidu-aip

L'invite suivante s'affiche après une installation réussie

Générer un discours

En consultant la documentation technique de la synthèse vocale Baidu , vous pouvez trouver les paramètres suivants:

Passez ces paramètres au framework donné par la documentation technique, vous pouvez générer un discours:

from aip import AipSpeech

app_id = '你的Appid'
api_key = '你的API key'
secret_key = '你的 screct key'

client = AipSpeech(app_id,api_key,secret_key)

result = client.synthesis('人生得意须尽欢,莫使金樽空对月','zh','1',
                         {"vol": 9,
                          "spd": 4,
                          "pit": 9,
                          "per": 3,
                         })

with open("audio.mp3","wb") as f:
    f.write(result)

Après avoir exécuté ce code, un fichier audio audio.mp3 sera généré dans le dossier courant. Après ouverture, vous pourrez entendre les versets récités.

Du nouveau texte au discours

Après avoir lu la documentation technique, la plus grande limitation de ce module est que la parole convertie ne peut pas dépasser 1024 octets (environ 512 caractères chinois), donc la première étape que nous devons effectuer est de couper un roman en plusieurs cinq Document texte avec des centaines de mots.
Tout d'abord, j'ai d'abord trouvé un roman, je l'ai copié dans un document, nommé read.txt. Ensuite, je me suis préparé à utiliser le code pour couper le contenu du roman. Le nombre de mots dans un paragraphe est de 500 mots.
D'abord extraire le contenu du roman, tous les 1000 mots Section (500 mots) plus le symbole "---" comme marque de coupe

with open('read.txt','r') as a:
    text = a.readlines()

for cut in text:
    #以1000个字节的长度进行分割
    text_cut = re.findall('.{1000}', cut)
    text_cut.append(cut[(len(text_cut) * 1000):])
    #在分割后的字符串中间插入"---"
    text_final = '---'.join(text_cut)
#计算文本中有多少个"---"标志
times = text_final.count('---')

Après cela, divisez le texte avec le symbole --- et enregistrez-le dans un nouveau test de dossier. Normalement, le bit de début de la liste est le 0ème bit, mais afin de répondre à nos habitudes de lecture, ces textes sont donc comptés à partir de 1

    name = text_final.split('---')[n]
    with open('test/' + str(n + 1) + '.txt','w') as b:
        b.write(name)

Ensuite, nous utilisons la commande with open pour lire le contenu du texte séparément en préparation de la prochaine lecture.

    with open('test/' + str(n + 1) + '.txt', 'r') as c:
        print('正在保存第' + str(n + 1) + '段内容......')
        lines = c.read()

Dans la dernière étape, le contenu du texte extrait est transmis à l'interface API et le
code complet du fichier vocal est sorti (remplacez les trois paramètres par le contenu appliqué auparavant)

import re
from aip import AipSpeech

app_id = 'id'
api_key = 'APIkey'
secret_key = 'screctkey'

client = AipSpeech(app_id,api_key,secret_key)

with open('read.txt','r') as a:
    text = a.readlines()

for cut in text:
    #以1000个字节的长度进行分割
    text_cut = re.findall('.{1000}', cut)
    text_cut.append(cut[(len(text_cut) * 1000):])
    #在分割后的字符串中间插入"---"
    text_final = '---'.join(text_cut)
#计算文本中有多少个"---"标志
times = text_final.count('---')
for n in range(0,times+1):
    name = text_final.split('---')[n]
    with open('test/' + str(n + 1) + '.txt','w') as b:
        b.write(name)
    with open('test/' + str(n + 1) + '.txt', 'r') as c:
        print('正在保存第' + str(n + 1) + '段内容......')
        lines = c.read()
        result = client.synthesis(lines, 'zh', '1',
                                  {"vol": 9,
                                   "spd": 4,
                                   "pit": 9,
                                   "per": 3,
                                   })

        with open('test/' + str(n + 1) + '.mp3', "wb") as d:
            print('正在生成第' + str(n + 1) + '段语音......')
            d.write(result)

Résultats de réalisation:

Ouvrez le dossier de test et cliquez sur le fichier mp3 pour commencer à écouter le roman

On dit que la voix remplacée par l'intelligence artificielle Baidu est très similaire à quelqu'un qui vous lit à côté de vous, l'expérience est bien plus que le module pyttsx3, très sympa!
L'interface d'intelligence artificielle de Baidu possède également de nombreuses fonctions utiles, telles que la reconnaissance faciale, la synthèse vocale, la comparaison de visages ... les étudiants intéressés peuvent l'explorer par eux-mêmes

Je suppose que tu aimes

Origine www.cnblogs.com/cherish-hao/p/12721679.html
conseillé
Classement