Pythonにしゃべらせてみたよ
Windowsに入っているSAPIエンジン*1でしゃべらせて、WaveとTextに保存できるようにしました。
日本語と、英語でスピーカーを変えられます。(メニューで最初に出てくるので数字で選んでね) テキストをコピペするとしゃべって音声とテキストをファイルに保存します。
まぁ、ずんだもん等に比べるとたどたどしいですけど、プレゼンに埋め込んだりできるのでそこそこ使えると思います。
# -*- coding: utf-8 -*- """ @author: kz713hatena """ # In[1]: # ============================================================================= # Speak text input # ============================================================================= import win32com.client from datetime import datetime now = datetime.now() today = now.date() #Menu print('Menu: \n') #Select Langage Lang=input('Please choose speaking language | 1:JP, 2:EN - ') if Lang == str(1): Speaker = "Microsoft Sayaka" print('Japanese Mode') elif Lang == str(2): Speaker = "Microsoft Zira" print('English Mode') #input speak contents contents = input('what do I speak? ') #speaking sapi = win32com.client.Dispatch("SAPI.SpVoice") cat = win32com.client.Dispatch("SAPI.SpObjectTokenCategory") cat.SetID(r"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices", False) v = [t for t in cat.EnumerateTokens() if t.GetAttribute("Name") == Speaker] if v: print('Speaking...') oldv = sapi.Voice sapi.Voice = v[0] sapi.Speak(contents) sapi.Voice = oldv print('Done') # In[2]: # ============================================================================= # Create Voice Wave File and text file # ============================================================================= if v: filename = f'{today} - {contents[:12]}' print('saved: ' + f'{filename}.wav') fs = win32com.client.Dispatch("SAPI.SpFileStream") fs.Open(f'{filename}.wav', 3) sapi.AudioOutputStream = fs oldv = sapi.Voice sapi.Voice = v[0] sapi.Speak(contents) sapi.Voice = oldv fs.Close() with open(f'{filename}.txt', "w") as f: f.write(contents) f.close()
*1:Speech Application Programming Interface(Speech API、SAPI)は、Windowsアプリケーションで音声認識や音声合成を使うためにマイクロソフトが開発したAPI。このAPIには様々なバージョンがあり、Speech SDK の一部として出荷されたものもあれば、Windows OS 自体の一部としてリリースされたものもある。SAPI を使ったアプリケーションとしては、Microsoft Office、Microsoft Agent、Microsoft Speech Server などがある。
一般にどのバージョンのAPIであっても、様々な言語で音声合成/認識機能を使ったアプリケーションを書くための標準インタフェースを提供している。また、サードパーティがSAPI対応の音声認識エンジンや音声合成エンジンを開発することも可能となっている。原則として、それらエンジンが定義されたインタフェースに準拠している限り、マイクロソフト提供のエンジンの代替として使うことが可能である。
Speech API は自由に再配布可能なコンポーネントであり、それを使っているアプリケーションと同梱させることが可能である。音声認識/合成エンジンの多くも自由に再配布可能である。