Python Blog

Różne ciekawostki ze świata Pythona i nie tylko.


Python ma głos

Wykorzystanie obiektu Speech API systemu Windows do syntezy mowy w pythonie.

Synteza mowy

W poniższym kodzie używana jest biblioteka win32com.client, która umożliwia dostęp do funkcji COM (Component Object Model) w systemie Windows za pomocą języka Python. W tym przypadku, funkcja Dispatch jest używana do utworzenia nowej instancji obiektu COM.

Parametr przekazany do funkcji Dispatch to ciąg znaków reprezentujący identyfikator programu (ProgID) obiektu COM, który chcemy utworzyć. W tym konkretnym przypadku, SAPI.SpVoice odnosi się do obiektu Speech API (SAPI), który jest używany do obsługi syntezy mowy w systemie Windows.

Skrypt

Najpierw instalujemy bibliotekę pywin32:

pip install pywin32

Skrypt w pythonie odczytujący podany tekst:

# -*- utf-8 -*-
import win32com.client

# Tekst do syntezy mowy
tekst = '''Czy równania potrafią naprawdę wyjaśnić, jak szpaki 
        latają w skoordynowany sposób? Czy fizyka leży u podstaw 
        nawet najbardziej spontanicznych, urzekających przejawów
        życia na Ziemi? Odpowiedź zależy w pewnym sensie od tego, 
        czy wierzy się w to, że matematyka została odkryta,
        czy wynaleziona; czy jest to wszechobecna siła, kierująca
        każdym działaniem we wszechświecie, lub czy logika została 
        narzucona przez ludzki mózg. 
        To jest cytat z książki "Rzecz o ptakach".
        Autor Noah Strycker.'''

speaker = win32com.client.Dispatch('SAPI.SpVoice')
# Wywołanie syntezatora
speaker.Speak(tekst)