Audacity导出音频后发声提醒
这么一个看似简单的功能,实现起来却颇费周折。
据ai说,Audacity 3.3版本只需要简单设置一下就可以了。但后来的版本莫名其妙去掉了这个功能。
ai给了大量的错误信息。首先用Nyquist写插件,没用,它只能生成一个音频,不能播放音频,也就是不能发声。
试了宏,Export2的参数只允许设置文件名,而且不能置空,没用。
最后在ai帮助下,使用mod-script-pipe模块,结合powershell代码,终于成功。具体方法:
1. 激活mod-script-pipe模块(缺省不激活):菜单Edit - Preferences - Modules,找到mod-script-pipe,设置为Enabled。重启Audacity。
2. 编写powershell代码
param ( [string]$filePath ) $pipeIn = "\\.\pipe\ToSrvPipe" $pipeOut = "\\.\pipe\FromSrvPipe" function Send-AudacityCommand { param([string]$command) # Send command $pipe = New-Object System.IO.Pipes.NamedPipeClientStream(".", "ToSrvPipe", [System.IO.Pipes.PipeDirection]::Out) $pipe.Connect() $writer = New-Object System.IO.StreamWriter($pipe) $writer.AutoFlush = $true $writer.WriteLine($command) $pipe.Close() # Read response $pipeR = New-Object System.IO.Pipes.NamedPipeClientStream(".", "FromSrvPipe", [System.IO.Pipes.PipeDirection]::In) $pipeR.Connect() $reader = New-Object System.IO.StreamReader($pipeR) $response = $reader.ReadToEnd() $pipeR.Close() return $response } $folder = Split-Path $filePath -Parent $baseName = [System.IO.Path]::GetFileNameWithoutExtension($filePath) $exportPath = Join-Path $folder "$baseName.m4a" Send-AudacityCommand "Export2: Filename=""$exportPath"" Format=m4a"
[console]::beep(800,2000)
3. 添加注册表项以生成右键菜单
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Export Audio as M4a] [HKEY_CLASSES_ROOT\*\shell\Export Audio as M4a\Command] @="powershell.exe -NoProfile -ExecutionPolicy Bypass -File \"C:\\foo\\bar.ps1\" -filePath \"%1\""
这样,先用Audacity导入视频,然后在文件管理器中右键点击文件名,选Export Audio as M4a,就可以了。
本来也可以通过powershell,调用audacity的Import命令,直接导入。但是很多视频导入后,需要手工调整音频设置,所以这一步就不自动化了。

浙公网安备 33010602011771号