実現したいこと
pythonでゆっくり音声を自動生成して保存したい。
前提
https://qiita.com/Mechanetai/items/78b04ed553cce01fa081
このサイトを参考に、ゆっくり音声を自動生成したいのですが、再生した音声を録音し、ファイルに保存することが出来ません。
該当のソースコード
import os import subprocess os.chdir(os.path.dirname(os.path.abspath(__file__))) _start = "start softalk\SofTalk.exe" _speed = "/S:120" _word = "/W:おはようございます" _record = "/R:test.wav" _volume = "/V:50" _command = [_start, _speed, _record, _word] print(_command) subprocess.run(' '.join(_command), shell=True)
/S: 読み上げの速度
/V: 声の音量
/W: 読み上げたい文章
引数はこのようになっています。
試したこと
例)/R:c:\test.wav
↑のように書くと、音声を保存できるらしいのですが、できませんでした。
また、上記のコードでは保存することが出来ません。
どのようにコードを変更すればよいでしょうか?
補足情報(FW/ツールのバージョンなど)
Python 3.8.3
SofTalk 1.93.46
Windows10
> 例)/R:c:\test.wav ↑のように書くと、音声を保存できる
のであれば、そのように書けばいいのではありませんか? わからないことは何ですか?
はい、実際にこれで実行してもCドライブには音声が保存されていませんでいた。
なので分かりやすくするために、同じプログラムがあるファイル内に保存しようとしたのです。わかりづらくて申し訳ありません。
なので、どうやったら音声を保存できるのかを知りたいで。例のように書いても保存できませんでした。
なるほど、「保存できる」ではなく、「サイトのとおりに /R:c:\test.wav と書いても保存できなかった」ということですね。
ここは、質問に対するコメントを書くところです。 質問は編集できるので直しておくといいと思います。
pythonの通常の文字列では、 「\」は1つでは特殊な意味(エスケープ文字)なので、
_record = "/R:c:\\test.wav" もしくは
_record = r"/R:c:\test.wav" とするとどうなりますか? パスは適切なものに変えたほうがよさそうですが。
ありがとうございます。_record = r"/R:c:\test.wav"Cドライブには保存できました。ファイルのパスを変更して同じファイルに内に保存できました!!!!
この先頭につけたrとはどういう意味なのでしょうか?(この先のプログラム改良のために知っておきたいので)
回答に書いておきますね。
質問に
> ↑のように書くと、音声を保存できる
と書いてますが、事実はそうではなく、
> 実際にこれで実行してもCドライブには音声が保存されていませんでいた。
ならば、質問の「音声を保存できる」は事実とは異なりますので、TakaiYさんも指摘してるように、質問を編集して、事実に合うように書き直してください
回答2件
あなたの回答
tips
プレビュー