GUIDE

Créez votre propre audio pour le shadowing

Le shadowing consiste à écouter une phrase et à la répéter à voix haute juste après, en copiant le rythme et l’intonation. Il fonctionne le mieux avec votre propre matériel : les phrases de votre leçon, vos réponses pour un entretien, le dialogue de votre manuel. Les vidéos de shadowing toutes faites contiennent rarement ces phrases-là.

Ce guide transforme n’importe quelle liste de phrases en une piste de shadowing avec le moteur gratuit SuperClonica : chaque phrase est lue d’abord un peu plus lentement, puis à vitesse normale, suivie d’une pause assez longue pour la répéter. Nous avons testé le script ci-dessous ; il fonctionne hors ligne et en 31 langues.

Écrire la leçon

Mettez une phrase par ligne dans un fichier texte nommé lesson.txt. Gardez des phrases courtes, qu’on dit d’un souffle, et écrivez-les comme on parle. Les lignes vides sont ignorées, vous pouvez donc regrouper les phrases comme vous voulez. Avant de commencer, essayez une phrase sur la page de n’importe quelle voix du catalogue, de 30 à 100 caractères, pour choisir une voix agréable à écouter, sans compte.

Le script

Installez une fois le moteur et NumPy :

pip install superclonica-cpu numpy

Enregistrez ceci sous shadowing.py :

import sys, wave
import numpy as np
from superclonica import Superclonica

LANGUAGE = "en"      # the language you practise
VOICE = "F2"         # M1..M5, F1..F5 or a voice file from the catalog
SPEEDS = (0.85, 1.0)  # each sentence slower first, then at normal speed
GAP = 1.3            # pause after each sentence, as a multiple of its length

tts = Superclonica()
pieces, rate = [], None
for line in open(sys.argv[1], encoding="utf-8"):
    sentence = line.strip()
    if not sentence:
        continue
    for speed in SPEEDS:
        tts.speed = speed
        audio, rate = tts.synthesize(sentence, voice=VOICE, lang=LANGUAGE)
        audio = np.asarray(audio, dtype=np.float32).reshape(-1)
        pieces += [audio, np.zeros(int(len(audio) * GAP), dtype=np.float32)]

pcm = (np.clip(np.concatenate(pieces), -1, 1) * 32767).astype(np.int16)
with wave.open("shadowing.wav", "wb") as file:
    file.setnchannels(1)
    file.setsampwidth(2)
    file.setframerate(rate)
    file.writeframes(pcm.tobytes())
print(f"shadowing.wav: {len(pcm) / rate:.0f} s")

Puis créez la piste :

python shadowing.py lesson.txt

Chaque phrase passe à la vitesse 0.85, puis à vitesse normale, et la pause qui suit dure 1,3 fois sa longueur, de quoi la dire vous-même. Avec trois phrases courtes, la piste dure environ une demi-minute.

Adaptez à votre niveau

Les débutants peuvent ralentir le premier passage à 0.75 et allonger GAP à 1.6 ; les avancés peuvent supprimer le passage lent avec SPEEDS = (1.0,) et raccourcir la pause. Réglez LANGUAGE sur la langue étudiée, par exemple es, de, fr, ja ou ko ; le chinois n’est pas encore pris en charge. Chaque voix parle les 31 langues, mais une voix enregistrée dans votre langue cible sonne plus naturelle.

Pratiquez chaque jour

Convertissez le WAV en MP3 avec n’importe quel outil audio et mettez-le sur votre téléphone, ou écoutez-le sur l’ordinateur. Faites du shadowing sur la piste chaque jour pendant une semaine, puis remplacez la leçon par de nouvelles phrases : une nouvelle piste se fait en une minute. Enregistrez-vous de temps en temps et comparez avec la voix ; les pauses aident à entendre où votre rythme diffère.