WhisperPS 模块导入错误:意外标记 'in' 和 缺少 ')'
在 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
}
修改后的代码解释:
- 将
foreach循环放在了主代码块中,确保语法正确。 - 使用
$i.BaseName来获取文件名,而不是$i.SourceName,这更符合预期。 - 将
Transcribe-File和Export-Text合并到了一个命令中,简化代码结构。 - 使用单引号 ' ' 包裹文件路径。
通过以上修改,可以解决 foreach 循环中的语法错误,成功使用 WhisperPS 模块进行音频转录。
原文地址: https://www.cveoy.top/t/topic/nadt 著作权归作者所有。请勿转载和采集!