在 Windows PowerShell 中,使用 WhisperPS 模块导入时,您可能遇到以下错误提示:

所在位置 行:2 字符: 14
+ foreach ( $i in $Results ) { $txt = $i.SourceName + '.txt'; $i | Expo ...
+ ~~
表达式或语句中包含意外的标记“in”。
所在位置 行:2 字符: 13
+ foreach ( $i in $Results ) { $txt = $i.SourceName + '.txt'; $i | Expo ...
+ ~
表达式中缺少右“)”。
所在位置 行:2 字符: 26
+ foreach ( $i in $Results ) { $txt = $i.SourceName + '.txt'; $i | Expo ...
+ ~
表达式或语句中包含意外的标记“)”。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken

这些错误通常发生在使用 foreach 循环时,由于语法错误导致。

您可以按照以下方式修改代码:

Import-Module WhisperPS -DisableNameChecking

$Model = Import-WhisperModel 'C:\Users\wolfydw\Desktop\whisper\WhisperDesktop\ggml-large-v1.bin'

$Results = dir .\* -include *.wma, *.wav, *.mp3

foreach ($i in $Results) {
    $txt = $i.BaseName + '.txt'
    Transcribe-File $Model -language zh -inputFile $i.FullName | Export-Text $txt -timestamps
}

修改后的代码解释:

  1. foreach 循环放在了主代码块中,确保语法正确。
  2. 使用 $i.BaseName 来获取文件名,而不是 $i.SourceName,这更符合预期。
  3. Transcribe-FileExport-Text 合并到了一个命令中,简化代码结构。
  4. 使用单引号 ' ' 包裹文件路径。

通过以上修改,可以解决 foreach 循环中的语法错误,成功使用 WhisperPS 模块进行音频转录。

WhisperPS 模块导入错误:意外标记 'in' 和 缺少 ')'

原文地址: https://www.cveoy.top/t/topic/nadt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录