gpt4 book ai didi

powershell - “speak”类的奇怪属性

转载 作者:行者123 更新时间:2023-12-02 23:17:13 28 4
gpt4 key购买 nike

我有一个在for循环中涉及System.speech程序集的代码,但是从我所看到的来看,抛出给我的错误非常奇怪。

我有一个代码,该代码生成10个随机字母和/或数字,然后将它们存储在一个数组中,该数组将抓取其中的某些元素,然后使用文本转语音引擎。但是,我想在每个演讲之间都稍作停顿,但会抛出错误:

PS Core 7.1错误

MethodException:
Line |
13 | $speak.speak($say)
| ~~~~~~~~~~~~~~~~~~
| Multiple ambiguous overloads found for "speak" and the argument count: "1".

要么

PS 5.1错误
Multiple ambiguous overloads found for "speak" and the argument count: "1".
At line:13 char:5
+ $speak.speak($say)
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest

我的代码是
Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$set = @(48..57 + 65..90)

for($i=0;$i -lt $set.length; $i++){
[char]$set[$i] = $set[$i]
}

$values = $set | get-random -count 10

for($i=0; $i -lt $values.length; $i++){
$say = $values[$i]
$speak.speak($say)
timeout /T 1 /NOBREAK > $null
}

在这种情况下,我不明白该错误意味着什么,但是如果我只是运行
$speak.speak($values)

它将正确地说出,但是但是,如果我尝试一一说出数组的每个值,则会发生10次错误,或者多次出现数组中的值。我们将非常感谢您提供有关此错误发生的原因,该错误被称为什么的任何信息,或者可以为我提供有关如何解决此问题的更多信息的任何信息。谢谢!

最佳答案

在您的脚本中,$say的类型为[char],但是Speak()的所有实现均不接受[char]作为参数-因此PowerShell无法确定要选择哪一个(哪个重载)!

在传递$say之前将其转换为字符串:

$speak.Speak("$say")

...现在,PowerShell将能够找出要执行的正确方法:)

关于powershell - “speak”类的奇怪属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62178874/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com