REVIT ARCHITECTURE (975) – PYTHON – Bucles (59) – Bucle For y Time (trabajar con el tiempo) + voice.id (voz en chino)

Imagina que estás esperando que hierva el agua y quieres contar 5 segundos sin usar reloj. Puedes decir:

“un cocodrilo… dos cocodrilos…tres cocodrilos…”

En este ejercicio de programación, se debe escribir un pequeño programa que:

  1. Cuente de 1 a 5, diciendo “un cocodrilo… dos cocodrilos…tres cocodrilos…”.
  2. Esperar un segundo entre cada número para que parezca una cuenta real de tiempo.
  3. Al final, decir «Ready or not, here I come!» (¡Listos o no, allá voy!).

Código en Python (completo):

Salida esperada:

(Una línea por segundo)

¿Qué estamos haciendo?

Queremos escribir un programa que:

  1. Cuente en voz alta del 1 al 5.
  2. Diga una palabra que haga que cada número dure aproximadamente 1 segundo al decirse.
  3. Espere 1 segundo real entre cada número.
  4. Diga una frase final: “¡Listos o no, allá voy!”

Esto simula cómo los niños cuentan cuando juegan al escondite. Lo hacen así para contar el tiempo real sin un reloj.

¿Por qué usamos “cocodrilo”?

Cuando decimos «uno», lo hacemos muy rápido. Pero si decimos:

«Un cocodrilo»,
«Dos cocodrilos»,
«Tres cocodrilos»…

Tardamos más o menos 1 segundo por número. Por eso los niños lo usan para contar segundos sin reloj. En inglés usan “Mississippi” por la misma razón.

¿Qué hace el programa?

Usamos el lenguaje Python, que permite escribir instrucciones al ordenador. Este programa:

  • Usa un bucle for para repetir una acción 5 veces.
  • Imprime cada número seguido de la palabra “cocodrilo”.
  • Espera 1 segundo entre cada impresión usando una función llamada sleep().
  • Al final, imprime la frase: “¡Listos o no, allá voy!”

Explicación línea por línea del código

import time

Esta línea importa un módulo (una herramienta) llamado time, que permite trabajar con el tiempo.

Importa el módulo time, que nos permite usar funciones relacionadas con el tiempo.
En este caso, vamos a usarlo para hacer pausas de 1 segundo entre cada número con time.sleep(1).
Lo vamos a usar para pausar el programa durante 1 segundo.

for i in range(1, 6):

Este es un bucle for. Significa:

“Repite lo que está dentro del bloque empezando en 1 y terminando en 5.”

  • range(1, 6) genera los números: 1, 2, 3, 4, 5
  • Cada vez que el bucle se repite, el número se guarda en i.

print(f"{i} cocodrilo")

Esto imprime algo en pantalla. Por ejemplo:

  • Si i es 1 → imprime 1 cocodrilo
  • Si i es 2 → imprime 2 cocodrilo
  • Y así sucesivamente.

f"{i} cocodrilo" es una f-string, una forma de escribir texto y mezclarlo con variables fácilmente.

time.sleep(1)

Esto pausa el programa durante 1 segundo antes de pasar al siguiente número.

Sin esto, el programa imprimiría todo en menos de un segundo.
Con sleep(1), hacemos que cada número aparezca con un segundo de diferencia, imitando el ritmo real de contar segundos.

print("¡Listos o no, allá voy!")

Una vez que el bucle termina, el programa imprime la frase final. Esto indica que el que busca en el escondite ya terminó de contar.

Resultado  (esperando un segundo entre cada línea):

1 cocodrilo
2 cocodrilo
3 cocodrilo
4 cocodrilo
5 cocodrilo
¡Listos o no, allá voy!

¿Qué se aprende con este ejercicio?

  • Cómo hacer un bucle for.
  • Cómo usar print() para mostrar texto.
  • Qué es una f-string.
  • Cómo usar time.sleep() para controlar el tiempo.
  • Cómo simular contar segundos de manera divertida.

¿Cómo hacer que el programa hable?

Usamos una librería de Python llamada pyttsx3, que convierte texto en voz. Es como un lector automático.

Código completo con sonido en español:

¿Qué necesitas para que funcione?

1. Instalar la librería pyttsx

Importa la librería pyttsx3, que permite que Python convierta texto en voz.

  • Esta librería funciona sin conexión a internet.
  • Usa voces del sistema operativo para leer en voz alta cualquier texto.

Si no está instalada, abri tu terminal (o consola de comandos) y escribir:

pip install pyttsx3

2. Ejecutar el script

Guarda el código en un archivo, por ejemplo cocodrilo.py, y ejecútalo:

python cocodrilo.py

 ¿Qué pasará?

El programa:

  • Mostrará en pantalla: 1 cocodrilo, 2 cocodrilo, etc.
  • Dirá en voz alta cada número con «cocodrilo»
  • Esperará 1 segundo entre cada uno
  • Al final dirá: «¡Listos o no, allá voy!»
engine = pyttsx3.init()

Aquí inicializamos el «motor de voz». Es como encender un lector de voz automático.

  • engine es una variable que guarda este motor.
  • Desde aquí podremos decirle qué texto decir, con qué velocidad, y más.
engine.setProperty('rate', 130) # Velocidad de habla (puedes ajustarlo)

Ajustamos la velocidad de la voz:

  • 'rate' es el parámetro que controla la velocidad al hablar.
  • 130 es una velocidad media (puedes probar con 100 o 200).
  • Si lo pones muy bajo, hablará muy lento. Si es muy alto, hablará muy rápido.
engine.say(frase) # Dice la frase en voz alta

Prepara el motor para decir la frase.

  • No se reproduce todavía, solo se pone en cola para hablar.
  • Como decir: “lee esto en voz alta cuando estés listo”.
engine.runAndWait() # Ejecuta el audio

Aquí el motor realmente habla.

  • Reproduce en voz alta lo que pusimos con say().
  • No sigue con el programa hasta que termina de hablar.
time.sleep(1) # Espera 1 segundo

El programa espera 1 segundo real antes de pasar al siguiente número.

  • Así se parece más al ritmo de una cuenta normal.
final = "¡Listos o no, allá voy!"

Guardamos el mensaje final que vamos a decir cuando termine la cuenta.

print(final)

Muestra el mensaje final en pantalla.

engine.say(final)
engine.runAndWait()

Finalmente, el motor de voz dice la frase final en voz alta.

¿Qué necesitas para que funcione?

  • Python instalado en tu computadora.
  • Instalar la librería pyttsx3 (una sola vez):
pip install pyttsx3

Resultado final cuando lo ejecutas:

Verás y escucharás:


¿cómo hacer este ejemplo con voz en otro idioma como inglés o chino?

Se va a adaptar este programa para que cuente en chino con voz y diga una frase final también en chino.

Objetivo

  1. Que diga:
    一条鳄鱼 (yì tiáo èyú) → “un cocodrilo”
    二条鳄鱼 (èr tiáo èyú) → “dos cocodrilos”
    etc.
  2. Que la voz lo diga en chino mandarín, no solo escrito.
  3. Que al final diga:
    不管你准备好了没有,我来了!→ “¡Listos o no, allá voy!”

Código completo en chino con voz:


¿Qué necesitas?

  1. Tener Python instalado.
  2. Instalar pyttsx3:
pip install pyttsx3
  1. Tener en tu sistema operativo una voz en chino instalada.
    • En Windows: puede ser «Microsoft Huihui» o «Microsoft Yaoyao».
    • En Mac: puedes instalar voces desde «Preferencias del sistema > Voz».
    • En Linux: depende del sistema (requiere configuraciones adicionales).

Si no tienes ninguna voz en chino, el programa seguirá funcionando, pero hablará con acento de otro idioma o no pronunciará bien.

 ¿Qué significa cada parte?

Frase en chino Significado Pinyin
一条鳄鱼 un cocodrilo yì tiáo èyú
二条鳄鱼 dos cocodrilos èr tiáo èyú
三条鳄鱼 tres cocodrilos sān tiáo èyú
四条鳄鱼 cuatro cocodrilos sì tiáo èyú
五条鳄鱼 cinco cocodrilos wǔ tiáo èyú
不管你准备好了没有,我来了! ¡Listos o no, allá voy!

configurar una voz en chino para que el programa hable correctamente en mandarín con pyttsx3.

Si estás usando Windows, así que aquí tienes una guía clara y detallada para que tu programa de voz en Python hable en chino mandarín conpyttsx3.

PASO 1: Instalar una voz en chino en Windows

Windows 10 o 11 viene con varias voces, pero solo algunas están disponibles por idioma.

Cómo instalar una voz en chino:

  1. Abre Configuración (Windows + I).
  2. Ve a Hora e idioma > Idioma.
  3. Haz clic en «Agregar un idioma».
  4. Busca “chino (simplificado, China)” y haz clic en “Siguiente”.
  5. Asegúrate de marcar la casilla que dice «Reconocimiento de voz» o «Voz».
  6. Haz clic en Instalar.

Esto puede tardar unos minutos. Cuando termine, ya tendrás una voz en chino instalada (como Microsoft Huihui o Microsoft Yaoyao).

PASO 2: Verifica si la voz aparece en pyttsx3

Vamos a ver todas las voces instaladas en tu sistema usando Python.

Código para listar voces:

Este código mostrará todas las voces disponibles.
Busca una que tenga zh-CN, chinese, o el nombre Huihui / Yaoyao.

PASO 3: Usar la voz china en tu programa

Una vez que encuentres el voice.id de la voz china, úsala así:

engine.setProperty('voice', 'Huihui') # O el ID que encontraste

O mejor aún, detectarla automáticamente:


PASO 4: Ejecuta el programa

Ahora ejecuta tu programa de “cocodrilo en chino” y debería sonar con voz china real.

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario