三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Excel wav作成 機械音声変換 言語の指定を409英語にして音声ファイル.wavを作成してみた


youtu.be
https://youtu.be/OEQRDtOinmw
目次
00:00 0.恥ずかしいお話・・・
02:55 1.機械音声の言語を英語USにしてみた
05:00 2.組み込み結果

0.恥ずかしいお話・・・
音声ファイルの作成で、英単語を読ませたら、そのまま日本語読みしていた・・・
apple
banana
orange
pineapple
から、音声を作成したら・・・
恥ずかしいお話、指摘されるまで、日本語カタカナ読みに気が付かなかった。

#ExcelVBA #英単語 を #機械音声 で #wav 作成

1.機械音声の言語を英語USにしてみた
なので、言語を英語に指定して、本場っぽく読ませてみた。ぉぃぉぃ

指定は簡単で、
google:SAPI.spVoice 言語
で検索すると、Language=409の指定で英語みたいです。

Dim US '言語の指定 2022/05/16 テストで英語USにしてみた。
Set US = oVoice.GetVoices("Language=409")(0) '409:英語US
Set oVoice.voice = US
を追加しただけでした。

2.組み込み結果
https://youtube.com/shorts/8FjA8-mvNW8
↑ショート動画のUP結果

英語の教材?を作るときは、
こんな感じで、英語US設定にするといいかなぁ・・と思ったり。
※おそいよ、いまさら・・・

全体のExcelVBAソース:

Option Explicit

Sub 台詞から音声ファイルを作る_英語()

    Dim strFILENAME As String
    Dim n As Integer
    Dim str台詞 As String
    Dim strALL As String
    
    Dim r As Range
    
    Set r = Range("B5")  '表の左上、基準値の場所をセット
    strALL = "" '初期化
    For n = 1 To 999   '最大999まで、そんなにいらないか
        
        str台詞 = Trim(r.Offset(n, 2))
        If Len(str台詞) = 0 Then
            Exit For
        End If
        strALL = strALL & str台詞
        
        'ファイル名をマクロ実行位置\連番+台詞
        strFILENAME = ThisWorkbook.Path & "\" & r.Offset(n, 1)
    
        '音声ファイル作成 の サブルーチンを呼ぶ
        Debug.Print strFILENAME & " " & str台詞
        Call 音声ファイル作成_英語(str台詞, strFILENAME) '英語の読み上げ指定
    Next
    
    'ループを抜けたら、すべてを作る
    'ファイル名をマクロ実行位置\C3&全て.wav
    strFILENAME = ThisWorkbook.Path & "\" & Range("c3") & "全て.wav"

    '音声ファイル作成 の サブルーチンを呼ぶ
    Call 音声ファイル作成_英語(strALL, strFILENAME)  '英語の読み上げ指定
    
    
    MsgBox "終了しました、ファイルを確認してね"

End Sub

'2022/05/16 言語指定を英語 409にしてみた。
Sub 音声ファイル作成_英語(strMOJI As String, wavePath As String)

    Dim oFileStream, oVoice           'wavファイルに保存
     
    '音声変換文字列が空白なら終了
    If strMOJI = "" Then
        Exit Sub
    End If
    
    'wavファイルに保存
    Const SAFT48kHz16BitStereo = 39
    Const SSFMCreateForWrite = 3
    
    Set oFileStream = CreateObject("SAPI.spFileStream")
    oFileStream.Format.Type = SAFT48kHz16BitStereo
    oFileStream.Open wavePath, SSFMCreateForWrite
    
    Set oVoice = CreateObject("SAPI.spVoice")
    
    Dim US '言語の指定 2022/05/16 テストで英語USにしてみた。
    Set US = oVoice.GetVoices("Language=409")(0) '409:英語US
    Set oVoice.voice = US
    
    Set oVoice.AudioOutputStream = oFileStream
    oVoice.Speak strMOJI   '台詞を渡す、話す?

    oFileStream.Close
    
    Set oFileStream = Nothing
    Set oVoice = Nothing

End Sub



関連動画
PowerPoint 画面切り替えを自動の0にしてスライドショーの連続実行
youtu.be
↑前回の失敗動画

パワポの縦スライドで動画を作成するには?
パワポで縦スライドを作成後 動画としてプレゼンスライドをエクスポート YouTubeショート動画を作ってみた
www.youtube.com
↑を見てください。

も、よろしくお願いします。

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)